Publié le :
Statistique CREATION_INTERNE

Exemple de régression de Poisson Zero-inflated avec PROC FMM

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script est un exemple d'utilisation de la procédure FMM (Finite Mixture Models). Il démontre comment modéliser des données de comptage ('count') qui ont plus de zéros que ce qu'un modèle de Poisson standard ne prédirait. Le script commence par créer un jeu de données, puis applique progressivement des modèles plus complexes : un modèle de Poisson de base, un modèle de mélange à deux composantes (Poisson et une constante pour les zéros excédentaires), et enfin une version bayésienne de ce modèle de mélange. Les options ODS sont utilisées pour générer des graphiques de diagnostic pour l'analyse bayésienne.
Analyse des données

Type : CREATION_INTERNE


Les données sont créées directement dans le script via une étape DATA et l'instruction DATALINES. La table 'catch' contient le genre, l'âge et un nombre ('count'). L'opérateur '@@' est utilisé pour lire plusieurs observations à partir d'une seule ligne de données.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc de code crée la table de travail 'catch'. Il lit les variables 'gender', 'age' et 'count' à partir de données intégrées directement dans le programme via l'instruction 'datalines'. L'indicateur '@@' dans l'instruction 'input' permet de lire plusieurs observations à partir de la même ligne de données brutes.
Copié !
1DATA catch;
2 INPUT gender $ age count @@;
3 DATALINES;
4 F 54 18 M 37 0 F 48 12 M 27 0
5 M 55 0 M 32 0 F 49 12 F 45 11
6 M 39 0 F 34 1 F 50 0 M 52 4
7 M 33 0 M 32 0 F 23 1 F 17 0
8 F 44 5 M 44 0 F 26 0 F 30 0
9 F 38 0 F 38 0 F 52 18 M 23 1
10 F 23 0 M 32 0 F 33 3 M 26 0
11 F 46 8 M 45 5 M 51 10 F 48 5
12 F 31 2 F 25 1 M 22 0 M 41 0
13 M 19 0 M 23 0 M 31 1 M 17 0
14 F 21 0 F 44 7 M 28 0 M 47 3
15 M 23 0 F 29 3 F 24 0 M 34 1
16 F 19 0 F 35 2 M 39 0 M 43 6
17;
2 Bloc de code
PROC FMM
Explication :
Ce bloc exécute un premier modèle de régression de Poisson simple. La variable de réponse 'count' est modélisée en fonction de l'interaction entre 'gender' et 'age'. La procédure FMM est utilisée ici avec un seul composant, ce qui équivaut à un Modèle Linéaire Généralisé (GLM) standard avec une distribution de Poisson.
Copié !
1PROC FMM DATA=catch;
2 class gender;
3 model count = gender*age / dist=Poisson;
4RUN;
3 Bloc de code
PROC FMM
Explication :
Ce bloc définit un modèle de mélange à deux composantes, typique d'une régression 'zero-inflated'. La première instruction 'model' spécifie la composante de Poisson. La seconde instruction 'model +' ajoute une deuxième composante, ici une distribution 'Constant', qui modélise la probabilité d'avoir un zéro excédentaire (un zéro qui ne provient pas du processus de Poisson).
Copié !
1PROC FMM DATA=catch;
2 class gender;
3 model count = gender*age / dist=Poisson ;
4 model + / dist=Constant;
5RUN;
4 Bloc de code
PROC FMM
Explication :
Ce bloc exécute le même modèle 'zero-inflated' que le précédent, mais en utilisant une approche d'inférence bayésienne, activée par l'instruction 'BAYES'. Une graine ('seed') est définie pour assurer la reproductibilité des résultats. L'option 'performance' est utilisée pour suggérer l'utilisation de deux processeurs pour accélérer les calculs.
Copié !
1PROC FMM DATA=catch seed=12345;
2 class gender;
3 model count = gender*age / dist=Poisson;
4 model + / dist=constant;
5 performance cpucount=2;
6 bayes;
7RUN;
5 Bloc de code
PROC FMM
Explication :
Ce dernier bloc ré-exécute l'analyse bayésienne, mais en activant la sortie graphique ODS ('ods graphics on'). L'instruction 'ods select TADPanel' restreint la sortie graphique à un panneau spécifique contenant les graphiques de diagnostic de la convergence des chaînes MCMC (Trace, Autocorrelation, Density), qui sont essentiels pour valider les résultats d'une analyse bayésienne.
Copié !
1ods graphics on;
2ods select TADPanel;
3PROC FMM DATA=catch seed=12345;
4 class gender;
5 model count = gender*age / dist=Poisson;
6 model + / dist=constant;
7 performance cpucount=2;
8 bayes;
9RUN;
10ods graphics off;
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 : S A S S A M P L E L I B R A R Y