Veröffentlicht am :
Statistik CREATION_INTERNE

Beispiel einer Zero-inflated Poisson-Regression mit PROC FMM

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript ist ein Beispiel für die Verwendung der FMM-Prozedur (Finite Mixture Models). Es zeigt, wie Zähldaten ('count') modelliert werden können, die mehr Nullen aufweisen, als ein Standard-Poisson-Modell vorhersagen würde. Das Skript beginnt mit der Erstellung eines Datensatzes und wendet dann schrittweise komplexere Modelle an: ein grundlegendes Poisson-Modell, ein Zweikomponenten-Mischmodell (Poisson und eine Konstante für überschüssige Nullen) und schließlich eine Bayes'sche Version dieses Mischmodells. ODS-Optionen werden verwendet, um Diagnosegrafiken für die Bayes'sche Analyse zu erstellen.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden direkt im Skript über einen DATA-Schritt und die DATALINES-Anweisung erstellt. Die Tabelle 'catch' enthält Geschlecht, Alter und eine Anzahl ('count'). Der Operator ' @@' wird verwendet, um mehrere Beobachtungen aus einer einzigen Datenzeile zu lesen.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser Codeblock erstellt die Arbeitstabelle 'catch'. Er liest die Variablen 'gender', 'age' und 'count' aus Daten, die direkt über die 'datalines'-Anweisung in das Programm integriert sind. Der ' @@'-Indikator in der 'input'-Anweisung ermöglicht das Lesen mehrerer Beobachtungen aus derselben Rohdatenzeile.
Kopiert!
1DATA catch;
2 INPUT gender $ age count @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
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 Codeblock
PROC FMM
Erklärung :
Dieser Block führt ein erstes einfaches Poisson-Regressionsmodell aus. Die Antwortvariable 'count' wird als Funktion der Interaktion zwischen 'gender' und 'age' modelliert. Die FMM-Prozedur wird hier mit einer einzigen Komponente verwendet, was einem Standard-Generalized Linear Model (GLM) mit einer Poisson-Verteilung entspricht.
Kopiert!
1PROC FMM DATA=catch;
2 class gender;
3 model count = gender*age / dist=Poisson;
4RUN;
3 Codeblock
PROC FMM
Erklärung :
Dieser Block definiert ein Zweikomponenten-Mischmodell, typisch für eine 'zero-inflated' Regression. Die erste 'model'-Anweisung spezifiziert die Poisson-Komponente. Die zweite 'model +'-Anweisung fügt eine zweite Komponente hinzu, hier eine 'Constant'-Verteilung, die die Wahrscheinlichkeit eines überschüssigen Nulls modelliert (einer Null, die nicht aus dem Poisson-Prozess stammt).
Kopiert!
1PROC FMM DATA=catch;
2 class gender;
3 model count = gender*age / dist=Poisson ;
4 model + / dist=Constant;
5RUN;
4 Codeblock
PROC FMM
Erklärung :
Dieser Block führt dasselbe 'zero-inflated'-Modell wie das vorherige aus, verwendet jedoch einen Bayes'schen Inferenzansatz, aktiviert durch die 'BAYES'-Anweisung. Ein Startwert ('seed') wird definiert, um die Reproduzierbarkeit der Ergebnisse zu gewährleisten. Die Option 'performance' wird verwendet, um die Nutzung von zwei Prozessoren zur Beschleunigung der Berechnungen vorzuschlagen.
Kopiert!
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 Codeblock
PROC FMM
Erklärung :
Dieser letzte Block führt die Bayes'sche Analyse erneut aus, aktiviert aber die ODS-Grafikausgabe ('ods graphics on'). Die Anweisung 'ods select TADPanel' beschränkt die Grafikausgabe auf ein spezifisches Panel, das die Diagnosegrafiken für die Konvergenz der MCMC-Ketten (Trace, Autocorrelation, Density) enthält, die für die Validierung der Ergebnisse einer Bayes'schen Analyse unerlässlich sind.
Kopiert!
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;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : S A S S A M P L E L I B R A R Y