Dieses Skript veranschaulicht die Verwendung der PROC GLMSELECT-Prozedur zur Variablenauswahl. Es beginnt mit der Generierung eines Regressordatensatzes über das Makro `%makeRegressorData`. Anschließend fügt das Makro `%AddDepVar` eine abhängige Variable `y` basierend auf einem linearen Modell und einem Zufallsfehler hinzu. Schließlich werden zwei Aufrufe von `PROC GLMSELECT` durchgeführt: der erste mit der LASSO-Auswahlmethode und der zweite mit der Group-LASSO-Methode.
Datenanalyse
Type : CREATION_INTERNE
Die Daten werden vollständig innerhalb des Skripts generiert. Das Makro `%makeRegressorData` erstellt die unabhängigen Variablen (kontinuierlich und klassifizierend) mit Zufallswerten. Das Makro `%AddDepVar` fügt dann die abhängige Variable `y` hinzu, basierend auf einer linearen Formel, die auf die zuvor erstellten Variablen angewendet wird.
1 Codeblock
Macro Data
Erklärung : Definition von zwei Makros. `%makeRegressorData` generiert die erklärenden Variablen (kontinuierlich und kategorial) unter Verwendung von Zufallszahlenfunktionen. `%AddDepVar` fügt eine abhängige Variable `y` zu einem Datensatz hinzu, basierend auf einer Formel und einem Zufallsfehler.
Kopiert!
%macro makeRegressorData(data=,nObs=500,nCont=5,nClass=5,nLev=3);
data &data;
drop i j;
%if &nCont>0 %then %do; array x{&nCont} x1-x&nCont; %end;
%if &nClass>0 %then %do; array c{&nClass} c1-c&nClass;%end;
do i = 1 to &nObs;
%if &nCont>0 %then %do;
do j= 1 to &nCont;
x{j} = rannor(1);
end;
%end;
%if &nClass > 0 %then %do;
do j=1 to &nClass;
if mod(j,3) = 0 then c{j} = ranbin(1,&nLev,.6);
else if mod(j,3) = 1 then c{j} = ranbin(1,&nLev,.5);
else if mod(j,3) = 2 then c{j} = ranbin(1,&nLev,.4);
end;
%end;
output;
end;
run;
%mend;
%macro AddDepVar(data=,modelRHS =,errorStd = 1);
data &data;
set &data;
y = &modelRHS + &errorStd * rannor(1);
run;
%mend;
Erklärung : Ausführung der Makros zur Erstellung der Arbeitstabelle `traindata`. Das erste Makro generiert die Regressoren und das zweite berechnet und fügt die abhängige Variable `y` hinzu.
Erklärung : Aktiviert ODS-Grafiken und führt dann die Prozedur `glmselect` aus, um eine Modellauswahl mittels der LASSO-Methode durchzuführen. Die Klassifikationsvariablen `c1-c5` können aufgeteilt werden (`split`). Ein Spline-Effekt wird für `x1` erstellt. Das SBC-Kriterium wird verwendet, um das beste Modell aus den 20 Auswahlschritten zu wählen.
Kopiert!
ods graphics on;
proc glmselect data=traindata plots=coefficients;
class c1-c5/split;
effect s1=spline(x1/split);
model y = s1 x2-x5 c:/
selection=lasso(steps=20 choose=sbc);
run;
1
ods graphics on;
2
3
PROC GLMSELECTDATA=traindata plots=coefficients;
4
class c1-c5/split;
5
effect s1=spline(x1/split);
6
model y = s1 x2-x5 c:/
7
selection=lasso(steps=20 choose=sbc);
8
RUN;
4 Codeblock
PROC GLMSELECT
Erklärung : Führt `proc glmselect` ein zweites Mal aus, wobei die Group-LASSO-Auswahlmethode verwendet wird. Die Variablen `x2`, `x3` und `x4` werden in einem Sammlungeffekt `s2` gruppiert, was ihre Auswahl oder ihren Ausschluss als Block erzwingt. Der Parameter `rho` passt die Strafe an.
Kopiert!
proc glmselect data=traindata plots=coefficients;
class c1-c5;
effect s1=spline(x1);
effect s2=collection(x2 x3 x4);
model y = s1 s2 x5 c:/
selection=grouplasso(steps=20 choose=sbc rho=0.8);
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.