Publié le :
Statistique CREATION_INTERNE

Exemple 12 pour PROC GENMOD - Distribution Tweedie

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce programme illustre l'utilisation de la procédure GENMOD pour analyser des données suivant une distribution de Tweedie. Dans un premier temps, il simule un jeu de données de 250 observations via une étape DATA, en construisant la variable réponse comme une somme Poisson de variables Gamma (représentation mathématique de la distribution de Tweedie). Ensuite, il ajuste deux modèles : le premier estime les paramètres avec la distribution Tweedie par défaut, et le second fixe le paramètre de puissance p à 1.5.
Analyse des données

Type : CREATION_INTERNE


Les données sont entièrement générées dans l'étape DATA 'tmp1' à l'aide de fonctions aléatoires (ranuni, ranpoi, rangam) basées sur des paramètres définis par macro-variables.

1 Bloc de code
DATA STEP Data
Explication :
Initialisation des macro-variables de configuration. Création de la table 'tmp1' contenant des variables explicatives catégorielles (c1-c5) et continues (d1, d2), ainsi qu'une variable cible 'yTweedie' simulée selon un processus Poisson composé Gamma.
Copié !
1%let nObs = 250;
2%let nClass = 5;
3%let nLevs = 4;
4%let seed = 100;
5 
6DATA tmp1;
7 array c{&nClass};
8 
9 keep c1-c&nClass yTweedie d1 d2;
10 
11 /* Tweedie parms */
12 phi=0.5;
13 p=1.5;
14 
15 DO i=1 to &nObs;
16 
17 DO j=1 to &nClass;
18 c{j} = int(ranuni(1)*&nLevs);
19 END;
20 
21 d1 = ranuni(&seed);
22 d2 = ranuni(&seed);
23 
24 xBeta = 0.5*((c2<2) - 2*(c1=1) + 0.5*c&nClass + 0.05*d1);
25 mu = exp(xBeta);
26 
27 /* Poisson distributions parms */
28 lambda = mu**(2-p)/(phi*(2-p));
29 /* Gamma distribution parms */
30 alpha = (2-p)/(p-1);
31 gamma = phi*(p-1)*(mu**(p-1));
32 
33 rpoi = ranpoi(&seed,lambda);
34 IF rpoi=0 THEN yTweedie=0;
35 ELSE DO;
36 yTweedie=0;
37 DO j=1 to rpoi;
38 yTweedie = yTweedie + rangam(&seed,alpha);
39 END;
40 yTweedie = yTweedie * gamma;
41 END;
42 OUTPUT;
43 END;
44RUN;
2 Bloc de code
PROC GENMOD
Explication :
Exécution de la procédure GENMOD pour ajuster un modèle linéaire généralisé sur les données simulées, en spécifiant une distribution Tweedie. L'option type3 demande les statistiques de type 3.
Copié !
1PROC GENMOD DATA=tmp1;
2 class C1-C5;
3 model yTweedie = C1-C5 D1 D2 / dist=Tweedie type3;
4RUN;
3 Bloc de code
PROC GENMOD
Explication :
Seconde exécution de PROC GENMOD avec un modèle simplifié (moins de variables explicatives) et en fixant explicitement le paramètre de puissance de la distribution Tweedie à 1.5.
Copié !
1PROC GENMOD DATA=tmp1;
2 class C1 C2;
3 model yTweedie = C1 C2 D1 / dist=Tweedie(p=1.5) type3;
4RUN;
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.
Informations de Copyright : SAS SAMPLE LIBRARY