Das Skript initialisiert Makrovariablen, um die Größe der simulierten Daten zu steuern. Anschließend wird ein Datensatz namens 'nested' mit verschachtelten Zufallseffekten (A, B(A)) und einer Antwortvariablen 'resp' erzeugt, die auf einem linearen Modell mit normalverteilten Fehlern basiert. Schließlich wird PROC NLMIXED verwendet, um ein lineares gemischtes Modell an diese Daten anzupassen, wobei Grenzen für die Varianzen der Zufallseffekte und die Verschachtelungsstruktur festgelegt werden.
Datenanalyse
Type : CREATION_INTERNE
Der Datensatz 'nested' wird vollständig innerhalb des SAS-Skripts unter Verwendung von Zufallszahlengenerierungsfunktionen erstellt und simuliert.
1 Codeblock
DATA STEP Data
Erklärung : Dieser DATA STEP-Block erstellt einen Datensatz namens 'nested', indem er Beobachtungen simuliert. Drei verschachtelte Schleifen generieren Ebenen für die Variablen 'A', 'B' (verschachtelt in 'A') und 'rep'. Normalverteilte Zufallsfehler (err1, err2, err3) werden mithilfe der Funktion RANNOR() generiert, um eine Zufallseffektstruktur zu simulieren. Die Variable 'resp' wird als Summe einer Konstante und dieser Zufallsfehler berechnet.
Kopiert!
%let na = 100;
%let nb = 5;
%let nr = 2;
data nested;
do A = 1 to &na;
err1 = 3*rannor(339205);
do B = 1 to &nb;
err2 = 2*rannor(0);
do rep = 1 to &nr;
err3 = 1*rannor(0);
resp = 10 + err1 + err2 + err3;
output;
end;
end;
end;
run;
1
%let na = 100;
2
%let nb = 5;
3
%let nr = 2;
4
DATA nested;
5
DO A = 1 to &na;
6
err1 = 3*rannor(339205);
7
DO B = 1 to &nb;
8
err2 = 2*rannor(0);
9
DO rep = 1 to &nr;
10
err3 = 1*rannor(0);
11
resp = 10 + err1 + err2 + err3;
12
OUTPUT;
13
END;
14
END;
15
END;
16
RUN;
2 Codeblock
PROC NLMIXED
Erklärung : Dieser Block verwendet PROC NLMIXED, um ein lineares gemischtes Modell an den Datensatz 'nested' anzupassen. Für die Varianzen der Zufallseffekte (vara, varb_a) werden Grenzen festgelegt, sodass sie nicht negativ sind. Der feste Teil des Modells wird durch 'mean' definiert, und die Antwortvariable 'resp' wird gemäß einer Normalverteilung modelliert. Es werden zwei Zufallseffekte spezifiziert: 'aeffect' für das Subjekt 'A' und 'beffect' für das in 'A' verschachtelte Subjekt 'B' (B(A)), jeweils mit einer Normalverteilung mit Mittelwert 0 und den Varianzen vara bzw. varb_a.
Kopiert!
proc nlmixed data = nested;
bounds vara >=0, varb_a >=0;
mean = intercept + aeffect + beffect;
model resp ~ normal (mean, s2);
random aeffect ~ normal(0,vara) subject = A;
random beffect ~ normal(0,varb_a) subject = B(A);
run;
1
PROC NLMIXEDDATA = nested;
2
bounds vara >=0, varb_a >=0;
3
mean = intercept + aeffect + beffect;
4
model resp ~ normal (mean, s2);
5
random aeffect ~ normal(0,vara) subject = A;
6
random beffect ~ normal(0,varb_a) subject = B(A);
7
RUN;
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.