Dieses Skript modelliert das Wachstum der US-Bevölkerung. Es demonstriert zunächst, wie die iterativ neu gewichtete Kleinste-Quadrate-Methode (IRLS) unter Verwendung der 'Biweight'-Funktion von Tukey direkt in PROC NLIN durch die spezielle Variable `_weight_` implementiert wird. Anschließend wird dieser Ansatz mit der standardisierten Prozedur PROC ROBUSTREG verglichen, die einen M-Schätzer verwendet.
Datenanalyse
Type : CREATION_INTERNE
Die Bevölkerungsdaten (uspop) werden direkt im Skript über einen DATA-Schritt und DATALINES-Anweisungen erstellt.
1 Codeblock
DATA STEP Data
Erklärung : Erstellung des Datensatzes 'uspop'. Die INPUT-Anweisung verwendet ' @@', um mehrere Beobachtungen in einer Zeile zu lesen. Die Variablen 'year' und 'yearsq' (Jahr im Quadrat) werden für das quadratische Modell generiert.
Kopiert!
title 'U.S. Population Growth';
data uspop;
input pop :6.3 @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
retain year 1780;
year = year+10;
yearsq = year*year;
datalines;
3929 5308 7239 9638 12866 17069 23191 31443 39818 50155
62947 75994 91972 105710 122775 131669 151325 179323 203211
226542 248710
;
1
title 'U.S. Population Growth';
2
DATA uspop;
3
INPUT pop :6.3 @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
Erklärung : Ausführung einer nicht-linearen Regression. Das Skript implementiert manuell eine robuste Regression (IRLS), indem es die spezielle Variable `_weight_` definiert. Die Gewichte werden in jeder Iteration basierend auf den Residuen (`resid`) gemäß der Tukey-Biweight-Funktion neu berechnet.
Kopiert!
title 'Beaton/Tukey Biweight Robust Regression using IRLS';
proc nlin data=uspop nohalve;
parms b0=20450.43 b1=-22.7806 b2=.0063456;
model pop=b0+b1*year+b2*year*year;
resid = pop-model.pop;
sigma = 2;
k = 4.685;
if abs(resid/sigma)<=k then _weight_=(1-(resid / (sigma*k))**2)**2;
else _weight_=0;
output out=c r=rbi;
run;
1
title 'Beaton/Tukey Biweight Robust Regression using IRLS';
2
PROC NLINDATA=uspop nohalve;
3
parms b0=20450.43 b1=-22.7806 b2=.0063456;
4
model pop=b0+b1*year+b2*year*year;
5
resid = pop-model.pop;
6
sigma = 2;
7
k = 4.685;
8
IF abs(resid/sigma)<=k THEN _weight_=(1-(resid / (sigma*k))**2)**2;
9
ELSE _weight_=0;
10
OUTPUT out=c r=rbi;
11
RUN;
3 Codeblock
DATA STEP Data
Erklärung : DATA-Schritt zur Neuberechnung oder Überprüfung der endgültigen Gewichte basierend auf den in der Ausgabe-Tabelle von PROC NLIN gespeicherten Residuen (rbi).
Kopiert!
data c;
set c;
sigma = 2;
k = 4.685;
if abs(rbi/sigma)<=k then _weight_=(1-(rbi /(sigma*k))**2)**2;
else _weight_=0;
run;
1
DATA c;
2
SET c;
3
sigma = 2;
4
k = 4.685;
5
IF abs(rbi/sigma)<=k THEN _weight_=(1-(rbi /(sigma*k))**2)**2;
6
ELSE _weight_=0;
7
RUN;
4 Codeblock
PROC PRINT
Erklärung : Anzeige der Ergebnisse der manuellen Regression (Tabelle 'c').
Kopiert!
proc print data=c;
run;
1
PROC PRINTDATA=c;
2
RUN;
5 Codeblock
PROC ROBUSTREG Data
Erklärung : Verwendung der PROC ROBUSTREG-Prozedur für robuste Regression. Sie verwendet hier die M-Schätzmethode. Die Ergebnisse werden in der Tabelle 'weights' gespeichert.
Kopiert!
proc robustreg data=uspop method=m(scale=2);
model pop = year year*year;
output out=weights weight=w;
run;
1
PROC ROBUSTREGDATA=uspop method=m(scale=2);
2
model pop = year year*year;
3
OUTPUT out=weights weight=w;
4
RUN;
6 Codeblock
PROC PRINT
Erklärung : Anzeige der von der ROBUSTREG-Prozedur berechneten Gewichte zum Vergleich.
Kopiert!
proc print data=weights;
run;
1
PROC PRINTDATA=weights;
2
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.
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.