Veröffentlicht am :
Statistik CREATION_INTERNE

Analyse von nichtlinearen gemischten Modellen (NLMIXED) für Binomialdaten

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript initialisiert einen Datensatz namens 'surgery' mithilfe von `datalines`, um Ergebnisse klinischer Studien (Erfolge 'y' bei 'n' Versuchen) zu simulieren. Es erstellt Hilfsvariablen 'treat2' und 'no' und transformiert die Variable 'treat'. Anschließend werden zwei `NLMIXED`-Prozeduren ausgeführt. Die erste passt ein binomial-logistisches Modell mit einem unkorrelierten Zufallseffekt ('a') pro Studie ('subject=study') an. Die zweite führt eine komplexere Anpassung durch, die zwei korrelierte Zufallseffekte ('a' und 'b') und eine Interaktion zwischen 'b' und 'treat' integriert, wobei eine Anzahl von Quadraturpunkten (`qpoints=50`) spezifiziert und ein Vorhersagedatensatz 'new2' generiert wird.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden direkt im Skript über einen DATA-Schritt und `datalines` erstellt, wodurch der Datensatz 'surgery' gebildet wird. Obwohl eine Zeichenkette, die einem JSON-Dateipfad ähnelt, in der `input`-Anweisung vorhanden ist, wird sie in diesem spezifischen DATA-Schritt nicht als externe Datenquelle interpretiert, da die Daten direkt nach `cards;` bereitgestellt werden.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt den Datensatz 'surgery' mithilfe von `datalines`. Er liest die Variablen 'study', 'treat', 'y' (Anzahl der Erfolge) und 'n' (Gesamtzahl der Versuche). Die Zeichenkette ' @code_sas_json/hsdua2304@gmail.com_SAS_Assignment_1.json' ist in der `input`-Anweisung vorhanden, stellt jedoch keine Standard-Syntax zum Lesen externer Daten in diesem Kontext dar und wird wörtlich interpretiert. Der Block berechnet anschließend 'no' (Anzahl der Misserfolge) und transformiert die Variable 'treat' von 1 in 0.5 und von 0 in -0.5, wodurch die Daten für nachfolgende Analysen vorbereitet werden.
Kopiert!
1DATA surgery;
2 INPUT study treat y n @code_sas_json/hsdua2304@gmail.com_SAS_Assignment_1.json ; * y successes out of n trials;
3 treat2 = treat;
4 no=n-y;
5 IF treat = 1 THEN treat = .5; ELSE treat = -.5;
6CARDS;
71 1 7 15 1 0 11 13
82 1 8 19 2 0 8 16
93 1 5 34 3 0 4 39
104 1 7 36 4 0 4 31
115 1 3 12 5 0 0 12
126 1 4 7 6 0 4 4
137 1 4 17 7 0 13 24
148 1 1 16 8 0 13 16
159 1 3 14 9 0 7 22
1610 1 2 38 10 0 12 32
1711 1 6 12 11 0 8 8
1812 1 2 7 12 0 7 9
1913 1 9 21 13 0 7 24
2014 1 7 21 14 0 5 25
2115 1 3 25 15 0 11 32
2216 1 4 11 16 0 6 10
2317 1 2 10 17 0 8 10
2418 1 1 31 18 0 4 27
2519 1 4 28 19 0 15 31
2620 1 7 43 20 0 16 43
2721 1 6 40 21 0 13 21
2822 1 4 18 22 0 5 39
2923 1 14 68 23 0 13 74
3024 1 6 21 24 0 8 21
3125 1 0 6 25 0 6 6
3226 1 1 10 26 0 5 15
3327 1 5 17 27 0 5 15
3428 1 0 10 28 0 12 14
3529 1 0 22 29 0 8 24
3630 1 2 18 30 0 10 21
3731 1 1 15 31 0 7 13
3832 1 8 24 32 0 15 27
3933 1 6 12 33 0 7 9
4034 1 0 20 34 0 5 23
4135 1 4 17 35 0 2 16
4236 1 10 40 36 0 12 20
4337 1 3 16 37 0 2 16
4438 1 4 34 38 0 5 19
4539 1 7 38 39 0 15 37
4640 1 0 34 40 0 34 34
4741 1 0 9 41 0 0 16
48;
2 Codeblock
PROC NLMIXED
Erklärung :
Dieser erste `PROC NLMIXED`-Block passt ein nichtlineares gemischtes Modell an. Er modelliert die Erfolgswahrscheinlichkeit 'pi' von 'y' aus 'n' Versuchen mithilfe einer logistischen Funktion mit einem Zufallseffekt 'a' für jede 'study'. Der Zufallseffekt 'a' folgt einer Normalverteilung mit einem Mittelwert 'alpha' und einer Varianz 'sig*sig', ohne eine spezifische Interaktion mit anderen Variablen.
Kopiert!
1/* (11.7) */
2PROC NLMIXED; * random effects, no interaction;
3pi = exp(a + beta*treat)/(1+exp(a + beta*treat)); * logistic formula for prob;
4model y ~ binomial(n, pi);
5random a ~ normal(alpha, sig*sig) subject=study;
3 Codeblock
PROC NLMIXED Data
Erklärung :
Dieser zweite `PROC NLMIXED`-Block passt ein komplexeres Modell mit korrelierten Zufallseffekten an. Er umfasst zwei Zufallseffekte, 'a' und 'b', die einer korrelierten multivariaten Normalverteilung folgen sollen. Die Wahrscheinlichkeit 'pi' enthält eine Interaktion von 'b' mit 'treat'. Die Option `qpoints=50` wird für die Berechnung der Integrale mittels Quadratur verwendet. Darüber hinaus wird die `predict`-Klausel verwendet, um die Werte von 'beta + b' vorherzusagen und in einem neuen Datensatz namens 'new2' zu speichern.
Kopiert!
1/* (11.8) */
2PROC NLMIXED qpoints=50; * correlated random effects, interaction;
3pi = exp(alpha + a + beta*treat + b*treat)/(1+exp(alpha + a + beta*treat + b*treat));
4model y ~ binomial(n, pi);
5random a b ~ normal([0,0], [sig_a*sig_a, rho ,sig_b*sig_b]) subject=study;
6predict beta + b out=new2;
7RUN;
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.