Veröffentlicht am :
Statistik CREATION_INTERNE

Fortgeschrittene statistische Analyse: GLIMMIX und NLMIXED

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript generiert zunächst einen simulierten Datensatz ('hair'). Anschließend werden eine Reihe von Analysen mit PROC GLIMMIX durchgeführt, um lineare und logistische Modelle mit verschiedenen Arten von Zufallseffekten (G-Seite vs. R-Seite) zu vergleichen. Schließlich werden die Daten aggregiert, um ein komplexes Modell über PROC NLMIXED anzupassen. Technischer Hinweis: Eine Inkonsistenz bei den Variablen ('id' vs. 'subj_id') ist im Sortier- und Aggregationsabschnitt vorhanden.
Datenanalyse

Type : CREATION_INTERNE


Alle Daten werden durch den ersten DATA STEP mithilfe von Zufallsfunktionen (normal, uniform) generiert.

1 Codeblock
DATA STEP Data
Erklärung :
Generierung des Arbeitsdatensatzes 'hair', der simulierte wiederholte Messungen (1000 Probanden, 8 Wochen) enthält.
Kopiert!
1DATA hair;
2 seed = 1999;
3 beta = 1.386294; *--- P is approximately 0.8;
4 DO Subj_id=1 to 1000;
5 s1 = 2*normal(seed);
6 s2 = sqrt(1.5)*normal(seed);
7 DO week=1 to 8;
8 score = round(s1 + normal(seed), 0.01);
9 p = 1/(1+exp(-beta - s2));
10 y = 0;
11 u = uniform(seed);
12 IF u < p THEN y = 1;
13 OUTPUT;
14 END;
15 END;
16keep subj_id score y;
17RUN;
2 Codeblock
PROC GLIMMIX
Erklärung :
Lineares gemischtes Modell mit zufälligem Achsenabschnitt pro Proband (G-Seite).
Kopiert!
1ods html;
2title "*** Linear Mixed Model with G-side Random Effects ***";
3 PROC GLIMMIX DATA=hair;
4 class subj_id;
5 model score = / s;
6 random int / subject=subj_id;
7RUN;
3 Codeblock
PROC GLIMMIX
Erklärung :
Lineares gemischtes Modell, das die Residualkovarianzstruktur modelliert (R-Seite, Typ Compound Symmetry).
Kopiert!
1title "*** Linear Mixed Model with R-side Random Effects ***";
2PROC GLIMMIX DATA=hair;
3 class subj_id;
4 model score = / s;
5 random _residual_ / subject=subj_id type=cs;
6RUN;
4 Codeblock
PROC GLIMMIX
Erklärung :
Logistisches gemischtes Modell mit G-seitigen Zufallseffekten.
Kopiert!
1title "*** Logistic Model with G-side Random Effects ***";
2 PROC GLIMMIX DATA=hair;
3 class subj_id;
4 model y (ref='0') = / dist=binary link=logit s;
5 random int / subject=subj_id;
6 estimate 'P' int 1 / ilink;
7RUN;
5 Codeblock
PROC GLIMMIX
Erklärung :
Logistisches gemischtes Modell mit R-seitigen Zufallseffekten.
Kopiert!
1title "*** Logistic Model with R-side Random Effects ***";
2PROC GLIMMIX DATA=hair;
3 class subj_id;
4 model y (ref='0')= / dist=binary link=logit s;
5 random _residual_ / subject=subj_id type=cs;
6 estimate 'P' int 1 / ilink;
7RUN;
8ods html close;
6 Codeblock
PROC SORT
Erklärung :
Sortieren der Daten für die Aggregation. (Achtung: Die Variable 'id' scheint im Vergleich zur erstellten 'subj_id' falsch zu sein).
Kopiert!
1PROC SORT DATA=hair;
2 BY id;
3RUN;
7 Codeblock
PROC MEANS Data
Erklärung :
Aggregation der Daten: Summe der Antwortvariablen 'y' pro Kennung.
Kopiert!
1PROC MEANS DATA=hair sum noprint;
2 BY id;
3 var y;
4 OUTPUT out=sum_hair sum=t;
5RUN;
8 Codeblock
DATA STEP Data
Erklärung :
Vorbereitung der aggregierten Daten für PROC NLMIXED (Berechnung der Häufigkeiten und Umbenennung).
Kopiert!
1DATA sum_hair;
2 SET sum_hair;
3 m_t = _freq_ - t;
4 rename _freq_ = m;
5 drop _type_;
6RUN;
9 Codeblock
PROC NLMIXED
Erklärung :
Nichtlineare gemischte Modellierung, die eine benutzerdefinierte Log-Likelihood-Funktion (ll) definiert.
Kopiert!
1PROC NLMIXED DATA=sum_hair;
2 parms beta=0 rho=0.1;
3 pi = 1/(1+exp(-beta));
4 pic = 1 - pi;
5 p1 = ( 1 - rho )*pi + rho;
6 p1c = 1 - p1;
7 p2 = p1 - rho;
8 p2c = 1 - p2;
9 z = lgamma(m+1) - lgamma(t+1) - lgamma(m_t+1);
10 ll = z + log( pi*p1**t*p1c**m_t + pic*p2**t*p2c**m_t );
11 model t ~ general( ll );
12 estimate 'P' 1/(1+exp(-beta));
13 estimate 'Rho*Rho' rho*Rho;
14RUN;
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.