Veröffentlicht am :
Statistik CREATION_INTERNE

Beispiel 3 PROC NLMIXED Dokumentation: Probit-Normal-Modell

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript ist Beispiel 3 aus der SAS©-Dokumentation für PROC NLMIXED. Es analysiert Inhalator-Daten (Ezzet und Whitehead, 1991) durch Anpassung eines Proportional-Odds-Modells mit zufälligen Effekten. Es definiert Grenzen für Schwellenparameter und verwendet die Funktion `probnorm`, um die Log-Likelihood-Funktion manuell zu erstellen.
Datenanalyse

Type : CREATION_INTERNE


Die 'inhaler'-Daten werden über einen DATA Step mit DATALINES erstellt. Die ursprüngliche Syntax schlägt die Verwendung von ' @@' vor, um mehrere Beobachtungen pro Zeile zu lesen.

1 Codeblock
DATA STEP Data
Erklärung :
Erstellung des 'inhaler'-Datensatzes. Die INPUT-Anweisung verwendet den Modifikator ' @@', um Daten kontinuierlich (mehrere Beobachtungen pro physischer Zeile) zu lesen. Die Variablen 'gt' (Interaktion) und 'sub' (Subjekt-ID) werden berechnet.
Kopiert!
1DATA inhaler;
2 INPUT clarity group time freq @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
3 gt = group*time;
4 sub = floor((_n_+1)/2);
5 DATALINES;
61 0 0 59 1 0 1 59 1 0 0 35 2 0 1 35 1 0 0 3 3 0 1 3 1 0 0 2
74 0 1 2 2 0 0 11 1 0 1 11 2 0 0 27 2 0 1 27 2 0 0 2 3 0 1 2
82 0 0 1 4 0 1 1 4 0 0 1 1 0 1 1 4 0 0 1 2 0 1 1 1 1 0 63
91 1 1 63 1 1 0 13 2 1 1 13 2 1 0 40 1 1 1 40 2 1 0 15 2 1 1 15
103 1 0 7 1 1 1 7 3 1 0 2 2 1 1 2 3 1 0 1 3 1 1 1 4 1 0 2
111 1 1 2 4 1 0 1 3 1 1 1
12;
2 Codeblock
PROC NLMIXED
Erklärung :
Schätzung des nichtlinearen gemischten Modells. Die 'general'-Verteilung wird verwendet, um eine benutzerdefinierte Log-Likelihood ('ll') zu spezifizieren, die auf der kumulativen Normalverteilungsfunktion (probnorm) basiert. Das Modell enthält einen zufälligen Effekt 'u', der normalverteilt auf Subjektebene 'sub' ist. 'REPLICATE' berücksichtigt die Häufigkeitsvariable.
Kopiert!
1PROC NLMIXED DATA=inhaler corr ecorr;
2 parms b0=0 b1=0 b2=0 b3=0 sd=1 i1=1 i2=1;
3 bounds i1 > 0, i2 > 0;
4 eta = b0 + b1*group + b2*time + b3*gt + u;
5 IF (clarity=1) THEN p = probnorm(-eta);
6 ELSE IF (clarity=2) THEN
7 p = probnorm(i1-eta) - probnorm(-eta);
8 ELSE IF (clarity=3) THEN
9 p = probnorm(i1+i2-eta) - probnorm(i1-eta);
10 ELSE p = 1 - probnorm(i1+i2-eta);
11 IF (p > 1e-8) THEN ll = log(p);
12 ELSE ll = -1e20;
13 model clarity ~ general(ll);
14 random u ~ normal(0,sd*sd) subject=sub;
15 replicate freq;
16 estimate 'thresh2' i1;
17 estimate 'thresh3' i1 + i2;
18 estimate 'icc' sd*sd/(1+sd*sd);
19RUN;
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-BEISPIELBIBLIOTHEK