Nichtlineare Regressionsanalyse mit Linksplatteau-Modell und Visualisierung

Dieser Code ist auch verfügbar auf: English Español Français
Schwierigkeitsgrad
Anfänger
Veröffentlicht am :
Das Skript beginnt mit der Erstellung eines Datensatzes namens 'lizard' aus integrierten Rohdaten (Datalines) für die Variablen 'length' (Länge) und 'mass' (Masse). Anschließend wird ein PROC NLIN-Verfahren verwendet, um ein nichtlineares Regressionsmodell vom Typ 'Linksplatteau' anzupassen. Dieses Modell besagt, dass die Masse (Parameter b0) bis zu einem bestimmten Längenschwellenwert (Parameter Tau) konstant bleibt, wonach sie linear mit der Länge (b0 + b1*(Länge-Tau)) zunimmt. Die Modellparameter (b0, b1, Tau) werden zur Erleichterung der Konvergenz initialisiert. Das Verfahren generiert außerdem einen neuen Datensatz 'a', der die Originaldaten und die vom Modell vorhergesagten Massenwerte ('p') enthält. Schließlich verwendet das Skript das PROC GPLOT-Verfahren (von SAS©/GRAPH), um zwei Visualisierungen zu erstellen. Die erste zeigt die beobachteten Massendaten in Abhängigkeit von der Länge. Die zweite überlagert die beobachteten Daten und die Kurve des angepassten Modells (vorhergesagte Werte 'p' vs. 'Länge'), was eine visuelle Bewertung der Modelladäquanz ermöglicht. Globale Grafikoptionen (GOPTIONS) und spezifische Attribute für Symbole und Achsen werden konfiguriert, um die Lesbarkeit der Diagramme zu verbessern.
Datenanalyse

Type : CREATION_INTERNE


Die für die Analyse verwendeten Daten ('length' und 'mass') werden direkt im Skript über eine DATA STEP-Anweisung mit 'datalines' erstellt, was bedeutet, dass sie in den Quellcode integriert sind und nicht aus einer externen Quelle stammen.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt einen neuen temporären Datensatz namens 'lizard'. Er definiert zwei numerische Variablen, 'length' und 'mass', und füllt diese mit den Rohdaten, die direkt im Skript über die DATALINES-Anweisung bereitgestellt werden. Dieser Datensatz ist die Datenquelle für nachfolgende statistische Analysen und Visualisierungen.
Kopiert!
1 DATA lizard;
2 INPUT LENGTH mass ;
3 DATALINES;
4 22.87 0.294 23.45 0.302 23.49 0.265 23.65 0.297
5 23.76 0.294 24.36 0.338 24.44 0.295 24.44 0.347
6 24.51 0.338 24.61 0.333 24.91 0.358 24.95 0.350
7 24.95 0.331 25.00 0.327 25.16 0.345 25.26 0.334
8 25.26 0.323 25.36 0.353 25.47 0.354 25.52 0.350
9 25.61 0.361 25.76 0.362 25.82 0.327 25.86 0.354
10 25.91 0.309 25.96 0.361 25.96 0.366 26.15 0.344
11 26.20 0.358 26.27 0.348 27.12 0.371 27.28 0.421
12;
2 Codeblock
PROC NLIN
Erklärung :
Diese PROC NLIN-Prozedur passt ein nichtlineares Regressionsmodell an die Daten des Datensatzes 'lizard' an. Das angegebene Modell ist ein 'Linksplatteau-Modell', bei dem die abhängige Variable 'mass' konstant ('b0') ist, bis 'length' den Wert 'tau' erreicht, und danach einer linearen Beziehung folgt. Die Parameter 'b0', 'b1' und 'tau' werden für die Prozedur initialisiert. Die Option 'output out=a p=p' erstellt einen neuen Datensatz 'a', der die ursprünglichen Variablen von 'lizard' sowie die Variable 'p' enthält, die die vom Modell vorhergesagten Massenwerte darstellt.
Kopiert!
1 PROC NLIN;
2 parameters b0 = 0.2904 b1 = 0.0189 tau = 23.44;
3 IF LENGTH <= tau THEN DO;
4 model mass = b0;
5 END;
6 ELSE DO;
7 model mass = b0 + b1*(LENGTH-tau);
8 END;
9 OUTPUT out=a p=p;
10 RUN;
3 Codeblock
PROC GPLOT
Erklärung :
Dieser Block initialisiert globale Grafikoptionen (`GOPTIONS`), um das Aussehen der Diagramme zu definieren (Farben, Schriftarten, Textgrößen). Er konfiguriert außerdem einen Haupttitel (`title1`), Symboldefinitionen (`symbol1`, `symbol2`) und Achsenspezifikationen (`axis1`, `axis2`), einschließlich Beschriftungen und Bereiche. Das `PROC GPLOT`-Verfahren wird dann verwendet, um ein einfaches Punktdiagramm ('mass' vs. 'length') aus dem Datensatz 'a' zu generieren, wobei die zuvor festgelegten Achsendefinitionen verwendet werden.
Kopiert!
1 goptions reset=global gunit=pct border cback=white
2 colors=(black blue green red)
3 ftitle=swissb ftext=swiss htitle=4 htext=4;
4title1 'Mass vs Length with the fit';
5symbol1 color=red
6 interpol=none
7 value=dot
8 height=3;
9symbol2 color=red
10 interpol=join;
11 axis1 label=('Length (mm)')
12 order=(22 to 28 BY 1)
13 width=3;
14 axis2 label=('Mass (g)')
15 order=(0.25 to .45 BY 0.05)
16 width=3;
17PROC GPLOT DATA=a;
18 plot mass*LENGTH/ haxis=axis1 vaxis=axis2;
19 RUN;
4 Codeblock
PROC GPLOT
Erklärung :
Dieser letzte Block verwendet `PROC GPLOT`, um eine überlagerte Grafik zu erstellen. Er zeichnet die beobachteten Daten ('mass' vs. 'length') und die vom Modell vorhergesagten Werte ('p' vs. 'length') aus dem Datensatz 'a' auf derselben Grafik. Die Option `overlay` ermöglicht die Visualisierung beider Serien auf demselben Koordinatensystem, was den Vergleich zwischen realen Beobachtungen und der Modellanpassung erleichtert. Die zuvor definierten Achsenkonfigurationen werden wiederverwendet.
Kopiert!
1PROC GPLOT DATA=a;
2 plot mass*LENGTH p*LENGTH/ overlay haxis=axis1 vaxis=axis2;
3 RUN;
4QUIT;
5 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.

Zugehörige Dokumentation

Aucune documentation spécifique pour cette catégorie.