Dieses Skript veranschaulicht die Verwendung der NLMIXED-Prozedur, um ein Poisson-Normal-Modell an Zähldaten anzupassen. Es beginnt mit der Erstellung eines internen Datensatzes namens 'pump', der die Variablen 'y', 't' und 'group' sowie die abgeleiteten Variablen 'pump' und 'logtstd' enthält. Anschließend wird die NLMIXED-Prozedur mit diesem Datensatz aufgerufen, um die Parameter eines nichtlinearen gemischten Modells zu schätzen. Das Modell umfasst feste Parameter (beta1, beta2, alpha1, alpha2) und einen normalverteilten Zufallseffekt (e) mit einer durch logsig modellierten Varianz. Es werden auch Kontrastschätzungen angefordert.
Datenanalyse
Type : CREATION_INTERNE
Der Datensatz 'pump' wird direkt im SAS-Skript mit der DATALINES-Anweisung erstellt, was bedeutet, dass die Daten eingebettet und intern für die Skriptausführung generiert werden.
1 Codeblock
DATA STEP Data
Erklärung : Dieser DATA STEP-Block erstellt den Datensatz 'pump'. Er liest die Variablen 'y', 't' und 'group' aus den eingebetteten Daten (datalines). Er erstellt auch eine Variable 'pump', die eine eindeutige Kennung für jede Beobachtung (_n_) ist, und 'logtstd', die die standardisierte logarithmische Transformation von 't' ist.
Erklärung : Dieser Block verwendet PROC NLMIXED, um ein nichtlineares gemischtes Modell anzupassen. Er deklariert die Modellparameter (logsig, beta1, beta2, alpha1, alpha2) mit ihren Startwerten. Die Variable 'eta' wird je nach Wert von 'group' unterschiedlich definiert. 'lambda' ist die exponentielle Transformation von 'eta'. Das Modell geht davon aus, dass 'y' einer Poisson-Verteilung mit dem Parameter 'lambda' folgt. Ein Zufallseffekt 'e' ist enthalten, der einer Normalverteilung mit einer durch 'exp(2*logsig)' modellierten Varianz folgt und durch 'subject=pump' spezifiziert wird. Schließlich werden Kontrastschätzungen zwischen den 'alpha'- und 'beta'-Parametern der beiden Gruppen berechnet.
Kopiert!
proc nlmixed data=pump;
parms logsig 0 beta1 1 beta2 1 alpha1 1 alpha2 1;
if (group = 1) then eta = alpha1 + beta1*logtstd + e;
else eta = alpha2 + beta2*logtstd + e;
lambda = exp(eta);
model y ~ poisson(lambda);
random e ~ normal(0,exp(2*logsig)) subject=pump;
estimate 'alpha1-alpha2' alpha1-alpha2;
estimate 'beta1-beta2' beta1-beta2;
run;
1
PROC NLMIXEDDATA=pump;
2
parms logsig 0 beta1 1 beta2 1 alpha1 1 alpha2 1;
3
IF (group = 1) THEN eta = alpha1 + beta1*logtstd + e;
4
ELSE eta = alpha2 + beta2*logtstd + e;
5
lambda = exp(eta);
6
model y ~ poisson(lambda);
7
random e ~ normal(0,exp(2*logsig)) subject=pump;
8
estimate 'alpha1-alpha2' alpha1-alpha2;
9
estimate 'beta1-beta2' beta1-beta2;
10
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; NAME: nlmex4; TITLE: Dokumentationsbeispiel 4 für PROC NLMIXED; PRODUCT: STAT
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.