Régression Tweedie Non Paramétrique avec PROC GAMPL

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Débutant
Publié le :
Ce script illustre la capacité de la procédure GAMPL à ajuster des modèles de régression Tweedie non paramétriques. Il commence par simuler un jeu de données (distribution de Poisson composée) avec des relations non linéaires entre les prédicteurs et la réponse. Il compare ensuite les résultats d'un modèle linéaire généralisé standard (PROC GENMOD) avec deux modèles GAMPL : l'un utilisant des termes linéaires paramétriques et l'autre utilisant des splines de lissage.
Analyse des données

Type : CREATION_INTERNE


Les données sont générées artificiellement dans l'étape DATA 'one'. Des variables aléatoires (x1-x4) sont transformées via des fonctions non linéaires (sinus, exponentielle, polynômes) pour créer une moyenne 'mu', qui sert ensuite à simuler une réponse 'y' suivant une distribution Tweedie.

1 Bloc de code
DATA STEP Data
Explication :
Génération de données synthétiques. Les macro-variables 'phi' et 'power' contrôlent la distribution Tweedie. Le code simule 1000 observations avec des prédicteurs aléatoires et une variable réponse 'y' construite à partir de transformations non linéaires complexes et d'un processus de Poisson composé.
Copié !
1title 'Nonparametric Tweedie Model';
2%let phi=0.4;
3%let power=1.5;
4 
5DATA one;
6 DO i=1 to 1000;
7 
8 /* Sample the predictors */
9 x1=ranuni(1);
10 x2=ranuni(1);
11 x3=ranuni(1);
12 x4=ranuni(1);
13 
14 /* Apply nonlinear transformations to predictors */
15 f1=2*sin(3.14159265*x1);
16 f2=exp(2*x2)*0.8;
17 f3=0.2*x3**11*(10*(1-x3))**6+10*(10*x3)**3*(1-x3)**10;
18 xb=f1+f2+f3;
19 xb=xb/20;
20 mu=exp(xb);
21 
22 /* Compute parameters of compound Poisson distribution */
23 lambda=mu**(2-&power)/(&phi*(2-&power));
24 alpha=(2-&power)/(&power-1);
25 gamma=&phi*(&power-1)*(mu**(&power-1));
26 
27 /* Simulate the response */
28 rpoi=ranpoi(1,lambda);
29 IF rpoi=0 THEN y=0;
30 ELSE DO;
31 y=0;
32 DO j=1 to rpoi;
33 y=y+rangam(1,alpha);
34 END;
35 y=y*gamma;
36 END;
37 OUTPUT;
38 END;
39RUN;
2 Bloc de code
PROC GENMOD
Explication :
Ajustement d'un modèle linéaire généralisé (GLM) de référence utilisant la distribution Tweedie. Ce modèle suppose une relation linéaire entre les prédicteurs et la fonction de lien de la réponse, ce qui peut être insuffisant compte tenu de la nature non linéaire des données générées.
Copié !
1 
2PROC GENMOD
3DATA=one;
4model y=x1 x2 x3 x4/dist=tweedie;
5RUN;
6 
3 Bloc de code
PROC GAMPL
Explication :
Utilisation de PROC GAMPL pour ajuster un modèle similaire au GLM (termes paramétriques linéaires uniquement) avec la distribution Tweedie. Cela permet de comparer les performances de base de GAMPL avec GENMOD.
Copié !
1 
2PROC GAMPL
3DATA=one seed=1234;
4model y=param(x1 x2 x3 x4)/dist=tweedie;
5RUN;
6 
4 Bloc de code
PROC GAMPL
Explication :
Ajustement d'un modèle additif généralisé (GAM) complet. Les termes 'spline()' permettent de modéliser les relations non linéaires pour chaque prédicteur. L'option 'plots' génère des graphiques pour visualiser les splines ajustées par rapport aux données.
Copié !
1 
2PROC GAMPL
3DATA=one seed=1234 plots;
4model y=spline(x1) spline(x2) spline(x3) spline(x4)/dist=tweedie;
5RUN;
6 
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.