Veröffentlicht am :

Dokumentationsbeispiel für PROC HPNLMOD

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
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.
Kopiert!
1DATA a;
2 INPUT y x;
3 DATALINES;
4.46 1 .47 2 .57 3 .61 4 .62 5 .68 6 .69 7
5.78 8 .70 9 .74 10 .77 11 .78 12 .74 13 .80 13
6.80 15 .78 16
7 ;
2 Codeblock
PROC HPNLMOD Data
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!
1PROC HPNLMOD DATA=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;
18RUN;
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.
Kopiert!
1PROC SGPLOT DATA=b noautolegend;
2 yaxis label='Observed or Predicted';
3 refline 0.7775 / axis=y label="Plateau" labelpos=min;
4 refline 12.7477 / axis=x label="Join point" labelpos=min;
5 scatter y=y x=x;
6 series y=yp x=x;
7RUN;
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