Der Skript implementiert ein Bruchpunktmodell, um eine strukturelle Änderung in der Beziehung zwischen zwei Variablen zu identifizieren. Es beginnt mit der Erstellung eines internen Datensatzes und verwendet dann PROC MCMC, um die Parameter eines stückweisen linearen Modells zu schätzen, einschließlich der Position des Bruchpunkts 'cp'. Die Schätzergebnisse (Posteriori-Mittelwerte) werden anschließend über einen DATA _NULL_ Schritt in Makrovariablen gespeichert. Schließlich wird PROC SGPLOT zweimal verwendet: einmal zur Visualisierung der Rohdaten und ein zweites Mal, um die Daten, die geschätzten Regressionsgeraden auf beiden Seiten des Bruchpunkts und die Posteriori-Dichte der Bruchpunktposition zu überlagern.
Datenanalyse
Type : CREATION_INTERNE
Die Daten werden vollständig innerhalb des Skripts mithilfe eines DATA-Schritts mit einer DATALINES-Anweisung generiert. Es sind keine externen Daten erforderlich.
1 Codeblock
DATA STEP Data
Erklärung : Dieser Block erstellt den Datensatz 'stagnant' aus internen Daten (Datalines). Die Option '@@' in der INPUT-Anweisung ermöglicht das Lesen mehrerer Beobachtungen aus einer einzigen Datenzeile.
INPUT y x @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
4
ind = _n_;
5
DATALINES;
6
1.12 -1.391.12 -1.390.99 -1.081.03 -1.08
7
0.92 -0.940.90 -0.800.81 -0.630.83 -0.63
8
0.65 -0.250.67 -0.250.60 -0.120.59 -0.12
9
0.510.010.440.110.430.110.430.11
10
0.330.250.300.250.250.340.240.34
11
0.130.44 -0.010.59 -0.130.70 -0.140.70
12
-0.300.85 -0.330.85 -0.460.99 -0.430.99
13
-0.651.19
14
;
15
RUN;
2 Codeblock
PROC SGPLOT
Erklärung : Anfängliche Visualisierung der Rohdaten als Punktwolke, um die Beziehung zwischen x und y zu untersuchen.
Kopiert!
proc sgplot data=stagnant;
scatter x=x y=y;
run;
1
2
PROC SGPLOT
3
DATA=stagnant;
4
scatter x=x y=y;
5
RUN;
6
3 Codeblock
PROC MCMC
Erklärung : Kern der Analyse. PROC MCMC wird verwendet, um ein bayesianisches Modell anzupassen. Der Code definiert die Parameter (alpha, cp, beta1, beta2, s2), ihre A-priori-Verteilungen und das lineare Modell, das besagt, dass sich die Steigung (beta) in Abhängigkeit von der Position von x relativ zum Bruchpunkt 'cp' ändert. Die Prozedur generiert Stichproben aus der A-posteriori-Verteilung der Parameter.
Erklärung : Dieser _NULL_ DATA-Schritt (erstellt keine Tabelle) liest die von PROC MCMC berechneten A-posteriori-Mittelwerte (gespeichert in der Tabelle 'ds') und weist sie Makrovariablen (z.B. &cp, &beta1, &beta2) zur späteren Verwendung zu.
Kopiert!
data _null_;
set ds;
call symputx(parameter, mean);
run;
1
DATA _null_;
2
SET ds;
3
call symputx(parameter, mean);
4
RUN;
5 Codeblock
DATA STEP Data
Erklärung : Erstellen Sie einen Datensatz 'b', um die Regressionslinien des angepassten Modells zu zeichnen. Er verwendet die Makrovariablen (&cp, &alpha, &beta1, &beta2), um die vorhergesagten Werte von y1 zu berechnen.
Kopiert!
data b;
missing A;
input x1 @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
if x1 eq .A then x1 = &cp;
if _n_ <= 2 then y1 = &alpha + &beta1 * (x1 - &cp);
else y1 = &alpha + &beta2 * (x1 - &cp);
datalines;
-1.5 A 1.2
;
run;
Erklärung : Wenden Sie das KDE-Verfahren (Kernel-Dichteschätzung) auf die MCMC-Ausgabe an, um die a-posteriori-Wahrscheinlichkeitsverteilung des Parameters 'cp' (den Bruchpunkt) zu schätzen.
Kopiert!
proc kde data=postout;
univar cp / out=m1 (drop=count);
run;
1
2
PROC KDE
3
DATA=postout;
4
univar cp / out=m1 (drop=count);
5
RUN;
6
7 Codeblock
DATA STEP Data
Erklärung : Dieser Block passt den von PROC KDE berechneten Dichtewert an (skaliert und verschiebt ihn), damit er lesbar auf dem endgültigen Diagramm überlagert werden kann.
Kopiert!
data m1;
set m1;
density = (density / 25) - 0.653;
run;
1
DATA m1;
2
SET m1;
3
density = (density / 25) - 0.653;
4
RUN;
8 Codeblock
DATA STEP Data
Erklärung : Kombiniere die Originaldaten ('stagnant'), die Linien des angepassten Modells ('b') und die Dichtedaten des Bruchpunkts ('m1') zu einem einzigen Datensatz für die finale Grafik.
Kopiert!
data all;
set stagnant b m1;
run;
1
DATA all;
2
SET stagnant b m1;
3
RUN;
9 Codeblock
PROC SGPLOT
Erklärung : Erstelle die vollständige finale Grafik, die überlagert: die ursprüngliche Punktwolke, die beiden Geradensegmente des Bruchpunktmodells und die Dichtekurve der A-posteriori-Verteilung des Parameters 'cp'.
series x=value y=density / lineattrs = graphdata1;
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.
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.