Publié le :
Statistique CREATION_INTERNE

Régression de Poisson avec PROC MCMC

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script illustre comment effectuer une régression de Poisson dans un cadre bayésien. Il commence par créer un jeu de données 'insure' contenant des comptes d'assurance. Il utilise ensuite PROC TRANSREG pour créer une matrice de conception pour les variables catégorielles. L'analyse principale est effectuée avec PROC MCMC pour estimer les paramètres du modèle. Enfin, une validation comparative est réalisée à l'aide de PROC GENMOD avec l'instruction BAYES.
Analyse des données

Type : CREATION_INTERNE


Les données sont générées directement dans le script via une étape DATA utilisant des 'datalines'.

1 Bloc de code
DATA STEP Data
Explication :
Création du jeu de données 'insure' contenant des informations sur le nombre de polices (n), le nombre de sinistres (c), le type de voiture (car) et l'âge. Une variable de décalage (offset) logarithmique 'ln' est calculée.
Copié !
1title 'Poisson Regression';
2DATA insure;
3 INPUT n c car $ age;
4 ln = log(n);
5 DATALINES;
6 500 42 small 0
7 1200 37 medium 0
8 100 1 large 0
9 400 101 small 1
10 500 73 medium 1
11 300 14 large 1
12;
2 Bloc de code
PROC TRANSREG Data
Explication :
Utilisation de PROC TRANSREG pour générer les variables indicatrices (dummy variables) pour la variable catégorielle 'car', préparant ainsi les données pour PROC MCMC.
Copié !
1PROC TRANSREG DATA=insure design;
2 model class(car / zero=last);
3 id n c age ln;
4 OUTPUT out=input_insure(drop=_: Int:);
5 RUN;
3 Bloc de code
PROC MCMC
Explication :
Exécution de l'analyse bayésienne avec PROC MCMC. Le modèle spécifie une distribution de Poisson pour la variable réponse 'c', avec une fonction de lien log et un offset 'ln'. Les priors sont définis comme normaux.
Copié !
1PROC MCMC DATA=input_insure outpost=insureout nmc=5000 propcov=quanew
2 maxtune=0 seed=7;
3 ods select PostSumInt;
4 array DATA[4] 1 &_trgind age;
5 array beta[4] alpha beta_car1 beta_car2 beta_age;
6 parms alpha beta:;
7 prior alpha beta: ~ normal(0, prec = 1e-6);
8 call mult(DATA, beta, mu);
9 model c ~ poisson(exp(mu+ln));
10RUN;
4 Bloc de code
PROC GENMOD
Explication :
Utilisation de PROC GENMOD avec l'instruction BAYES pour ajuster le même modèle de régression de Poisson. Cela sert de point de comparaison pour valider les résultats obtenus avec PROC MCMC.
Copié !
1PROC GENMOD DATA=insure;
2 ods select PostSummaries PostIntervals;
3 class car age(descending);
4 model c = car age / dist=poisson link=log offset=ln;
5 bayes seed=17 nmc=5000 coeffprior=normal;
6RUN;
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.