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!
data catch;
input gender $ age count @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
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 @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
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 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!
proc fmm data=catch;
class gender;
model count = gender*age / dist=Poisson;
run;
1
PROC FMMDATA=catch;
2
class gender;
3
model count = gender*age / dist=Poisson;
4
RUN;
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!
proc fmm data=catch;
class gender;
model count = gender*age / dist=Poisson ;
model + / dist=Constant;
run;
1
PROC FMMDATA=catch;
2
class gender;
3
model count = gender*age / dist=Poisson ;
4
model + / dist=Constant;
5
RUN;
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!
proc fmm data=catch seed=12345;
class gender;
model count = gender*age / dist=Poisson;
model + / dist=constant;
performance cpucount=2;
bayes;
run;
1
PROC FMMDATA=catch seed=12345;
2
class gender;
3
model count = gender*age / dist=Poisson;
4
model + / dist=constant;
5
performance cpucount=2;
6
bayes;
7
RUN;
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!
ods graphics on;
ods select TADPanel;
proc fmm data=catch seed=12345;
class gender;
model count = gender*age / dist=Poisson;
model + / dist=constant;
performance cpucount=2;
bayes;
run;
ods graphics off;
1
ods graphics on;
2
ods select TADPanel;
3
PROC FMMDATA=catch seed=12345;
4
class gender;
5
model count = gender*age / dist=Poisson;
6
model + / dist=constant;
7
performance cpucount=2;
8
bayes;
9
RUN;
10
ods 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
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.