Das Skript beginnt mit der Erstellung eines Datensatzes 'a' unter Verwendung von Inline-Daten (Datalines). Dieser Datensatz enthält die Variablen 'y' (Antwort) und 'x' (Prädiktor). Anschließend wird die HPNLMOD-Prozedur verwendet, um ein segmentiertes nichtlineares Modell an die Daten von 'a' anzupassen und einen Ausgabedatensatz 'b' mit den Vorhersagen zu erstellen. Das Modell definiert einen Knotenpunkt 'x0' und wendet eine Bedingungslogik an, um den vorhergesagten Wert 'yp' vor und nach diesem Knotenpunkt zu berechnen und die Kontinuität sicherzustellen. Schätzungen für den Knotenpunkt und den Plateauwert werden ebenfalls berechnet. Schließlich wird PROC SGPLOT verwendet, um die beobachteten Daten und die vorhergesagten Werte zu visualisieren, einschließlich Referenzlinien für das Plateau und den Knotenpunkt, um die Interpretation des Modells zu erleichtern.
Datenanalyse
Type : CREATION_INTERNE
Alle in diesem Skript verwendeten Daten werden intern über einen DATA-Schritt mit 'datalines' erstellt.
1 Codeblock
DATA STEP Data
Erklärung : Dieser DATA STEP-Block erstellt einen temporären Datensatz namens 'a'. Die Variablen 'y' und 'x' werden aus den bereitgestellten Datenzeilen (Datalines) gelesen. Diese Daten bilden die Menge der Beobachtungen, an die das Modell angepasst wird.
Erklärung : Diese Prozedur passt ein segmentiertes nichtlineares Modell an die Daten des Datensatzes 'a' an. Sie initialisiert die Parameter 'alpha', 'beta' und 'gamma'. Ein Knotenpunkt 'x0' wird berechnet. Die vorhergesagte Variable 'yp' wird durch eine quadratische Funktion vor 'x0' und durch eine Konstante nach 'x0' (Plateauwert) bestimmt, wodurch die Kontinuität gewährleistet ist. Das Modell 'y ~ residual(yp)' wird spezifiziert. 'Estimate'-Anweisungen werden verwendet, um die Schätzungen des 'join point' und des 'plateau value' zu erhalten. 'Predict'-Anweisungen speichern die vorhergesagten Werte 'yp' sowie die beobachteten Werte 'y' und 'x' im Ausgabedatensatz 'b'.
Kopiert!
proc hpnlmod data=a out=b;
parms alpha=.45 beta=.05 gamma=-.0025;
x0 = -.5*beta / gamma;
if (x < x0) then
yp = alpha + beta*x + gamma*x*x;
else
yp = alpha + beta*x0 + gamma*x0*x0;
model y ~ residual(yp);
estimate 'join point' -beta/2/gamma;
estimate 'plateau value c' alpha - beta**2/(4*gamma);
predict 'predicted' yp pred=yp;
predict 'response' y pred=y;
predict 'x' x pred=x;
run;
1
PROC HPNLMODDATA=a out=b;
2
parms alpha=.45 beta=.05 gamma=-.0025;
3
4
x0 = -.5*beta / gamma;
5
6
IF (x < x0) THEN
7
yp = alpha + beta*x + gamma*x*x;
8
ELSE
9
yp = alpha + beta*x0 + gamma*x0*x0;
10
11
model y ~ residual(yp);
12
13
estimate 'join point' -beta/2/gamma;
14
estimate 'plateau value c' alpha - beta**2/(4*gamma);
15
predict 'predicted' yp pred=yp;
16
predict 'response' y pred=y;
17
predict 'x' x pred=x;
18
RUN;
3 Codeblock
PROC SGPLOT
Erklärung : Diese Prozedur generiert eine hochwertige Grafik zur Visualisierung der Modellergebnisse. Sie verwendet den Datensatz 'b' (erzeugt von PROC HPNLMOD). Die Y-Achse ist mit 'Observed or Predicted' beschriftet. Zwei Referenzlinien werden hinzugefügt: eine horizontale für das 'Plateau' (y-Wert=0.7775) und eine vertikale für den 'Join point' (x-Wert=12.7477). Ein Streudiagramm ('scatter') zeigt die beobachteten Daten ('y' vs 'x'), und eine Linienreihe ('series') stellt die vorhergesagten Werte ('yp' vs 'x') dar, was einen visuellen Vergleich zwischen Beobachtungen und der Anpassung des segmentierten Modells ermöglicht.
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.