Veröffentlicht am :
Statistik CREATION_INTERNE

Dokumentationsbeispiel 16 für PROC MI

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript veranschaulicht, wie eine multiple Imputation durchgeführt wird, wenn angenommen wird, dass fehlende Daten nicht zufällig sind (MNAR). Es beginnt mit der Erstellung eines synthetischen Datensatzes ('Fcs1') mit simulierten fehlenden Werten. Anschließend wird `PROC MI` mit der Option `FCS` (Fully Conditional Specification) und der Anweisung `MNAR` verwendet, um die imputierten Werte der Variablen `y1` und `y2` speziell für die Behandlungsgruppe `Trt='1'` anzupassen, indem Verschiebungen (shift) angewendet werden.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden im DATA-Schritt `Fcs1` künstlich unter Verwendung von Schleifen und Zufallszahlengenerierungsfunktionen (`rannor`, `ranuni`) generiert, um klinische Studiendaten zu simulieren.

1 Codeblock
DATA STEP Data
Erklärung :
Erstellung des Datensatzes `Fcs1`. Generiert die Variablen `y0`, `y1`, `y2` basierend auf einer Normalverteilung und fügt zufällig fehlende Werte (`.`) für `y1` oder `y2` ein.
Kopiert!
1DATA Fcs1;
2 DO Trt=0 to 1;
3 DO j=1 to 5;
4 y0=10 + rannor(99);
5 y1= y0 + 0.9*Trt + rannor(99);
6 y2= y0 + 0.9*Trt + rannor(99);
7 IF (ranuni(99) < 0.3) THEN y1=.;
8 ELSE IF (ranuni(99) < 0.3) THEN y2=.;
9 OUTPUT;
10 END; END;
11 DO Trt=0 to 1;
12 DO j=1 to 45;
13 y0=10 + rannor(99);
14 y1= y0 + 0.9*Trt + rannor(99);
15 y2= y0 + 0.9*Trt + rannor(99);
16 IF (ranuni(99) < 0.3) THEN y1=.;
17 ELSE IF (ranuni(99) < 0.3) THEN y2=.;
18 OUTPUT;
19 END; END;
20 drop j;
21RUN;
2 Codeblock
PROC PRINT
Erklärung :
Zeigt die ersten 10 Beobachtungen des generierten Datensatzes zur Überprüfung an.
Kopiert!
1PROC PRINT DATA=Fcs1(obs=10);
2 var Trt Y0 Y1 Y2;
3 title 'First 10 Obs in the Trial Data';
4RUN;
3 Codeblock
PROC MI Data
Erklärung :
Führt die multiple Imputation aus. Verwendet die `FCS`-Methode mit 25 Iterationen. Die `MNAR`-Anweisung wendet eine Anpassung (Verschiebung von -0.4 für `y1` und -0.5 für `y2`) nur für Beobachtungen an, bei denen `Trt='1'`, wodurch eine Verzerrung für fehlende Daten simuliert wird.
Kopiert!
1PROC MI DATA=Fcs1 seed=52387 out=outex16;
2 class Trt;
3 fcs nbiter=25 reg( /details);
4 mnar adjust( y1 /shift=-0.4 adjustobs=(Trt='1'))
5 adjust( y2 /shift=-0.5 adjustobs=(Trt='1'));
6 var Trt y0 y1 y2;
7RUN;
4 Codeblock
PROC PRINT
Erklärung :
Zeigt die ersten 10 Beobachtungen des Ausgabedatensatzes `outex16` an, der die imputierten Daten enthält.
Kopiert!
1PROC PRINT DATA=outex16(obs=10);
2 var _Imputation_ Trt y0 y1 y2;
3 title 'First 10 Observations of the Imputed Data Set';
4RUN;
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 : SAS SAMPLE LIBRARY, NAME: MIEX16, PRODUCT: STAT