Ce script démontre plusieurs facettes de PROC HPFMM. Il commence par créer une table de données 'catch' contenant des variables démographiques et une variable de comptage 'count'. Ensuite, il applique progressivement des modèles plus complexes : un modèle de Poisson de base, un modèle de mélange de Poisson 'zero-inflated' pour tenir compte d'un surplus de zéros, et enfin une analyse bayésienne de ce dernier modèle. Le script montre également comment optimiser l'exécution (nthreads) et générer des graphiques spécifiques (ODS Graphics).
Analyse des données
Type : CREATION_INTERNE
Les données sont entièrement générées et contenues dans le script via une étape DATA avec une instruction DATALINES.
1 Bloc de code
DATA STEP Data
Explication : Ce bloc crée la table 'catch' à partir de données internes. L'instruction 'input' lit les variables 'gender', 'age' et 'count'. Le double 'at' (@@) indique à SAS de lire plusieurs observations à partir de la même ligne de données.
Copié !
data catch;
input gender $ age count @@;
datalines;
F 54 18 M 37 0 F 48 12 M 27 0
M 55 0 M 32 0 F 49 12 F 45 11
M 39 0 F 34 1 F 50 0 M 52 4
M 33 0 M 32 0 F 23 1 F 17 0
F 44 5 M 44 0 F 26 0 F 30 0
F 38 0 F 38 0 F 52 18 M 23 1
F 23 0 M 32 0 F 33 3 M 26 0
F 46 8 M 45 5 M 51 10 F 48 5
F 31 2 F 25 1 M 22 0 M 41 0
M 19 0 M 23 0 M 31 1 M 17 0
F 21 0 F 44 7 M 28 0 M 47 3
M 23 0 F 29 3 F 24 0 M 34 1
F 19 0 F 35 2 M 39 0 M 43 6
;
1
DATA catch;
2
INPUT gender $ age count @@;
3
DATALINES;
4
F 5418 M 37 0 F 4812 M 27 0
5
M 55 0 M 32 0 F 4912 F 4511
6
M 39 0 F 341 F 50 0 M 524
7
M 33 0 M 32 0 F 231 F 17 0
8
F 445 M 44 0 F 26 0 F 30 0
9
F 38 0 F 38 0 F 5218 M 231
10
F 23 0 M 32 0 F 333 M 26 0
11
F 468 M 455 M 5110 F 485
12
F 312 F 251 M 22 0 M 41 0
13
M 19 0 M 23 0 M 311 M 17 0
14
F 21 0 F 447 M 28 0 M 473
15
M 23 0 F 293 F 24 0 M 341
16
F 19 0 F 352 M 39 0 M 436
17
;
2 Bloc de code
PROC HPFMM
Explication : Ce bloc exécute un premier modèle de régression de Poisson simple. La variable 'count' est modélisée en fonction de l'interaction entre 'gender' et 'age'.
Copié !
proc hpfmm data=catch;
class gender;
model count = gender*age / dist=Poisson;
run;
1
PROC HPFMMDATA=catch;
2
class gender;
3
model count = gender*age / dist=Poisson;
4
RUN;
3 Bloc de code
PROC HPFMM
Explication : Ce bloc ajuste un modèle de mélange à deux composantes, connu sous le nom de modèle de Poisson 'zero-inflated' (ZI). La première instruction MODEL spécifie la composante de Poisson, et la seconde MODEL avec 'dist=Constant' ajoute une composante qui modélise l'excès de zéros.
Copié !
proc hpfmm data=catch;
class gender;
model count = gender*age / dist=Poisson ;
model + / dist=Constant;
run;
1
PROC HPFMMDATA=catch;
2
class gender;
3
model count = gender*age / dist=Poisson ;
4
model + / dist=Constant;
5
RUN;
4 Bloc de code
PROC HPFMM
Explication : Ce bloc effectue une analyse bayésienne du modèle de Poisson 'zero-inflated'. L'instruction 'BAYES' demande l'inférence bayésienne pour les paramètres du modèle. 'PERFORMANCE NTHREADS=2' est utilisé pour accélérer le calcul en utilisant deux threads.
Copié !
proc hpfmm data=catch seed=12345;
class gender;
model count = gender*age / dist=Poisson;
model + / dist=constant;
performance nthreads=2;
bayes;
run;
1
PROC HPFMMDATA=catch seed=12345;
2
class gender;
3
model count = gender*age / dist=Poisson;
4
model + / dist=constant;
5
performance nthreads=2;
6
bayes;
7
RUN;
5 Bloc de code
PROC HPFMM
Explication : Ce dernier bloc ré-exécute l'analyse bayésienne, mais en activant la génération de graphiques via 'ODS GRAPHICS ON'. 'ODS SELECT TADPanel' filtre la sortie pour n'afficher que le panneau de graphiques de diagnostic bayésien (Trace, Autocorrelation, Density).
Copié !
ods graphics on;
ods select TADPanel;
proc hpfmm data=catch seed=12345;
class gender;
model count = gender*age / dist=Poisson;
model + / dist=constant;
performance nthreads=2;
bayes;
run;
ods graphics off;
1
ods graphics on;
2
ods select TADPanel;
3
PROC HPFMMDATA=catch seed=12345;
4
class gender;
5
model count = gender*age / dist=Poisson;
6
model + / dist=constant;
7
performance nthreads=2;
8
bayes;
9
RUN;
10
ods 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
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.