Join Now

Juletip #15 – variabeludvælgelse

by SAS Employee MichaelSperling on ‎12-21-2015 04:42 AM (338 Views)

Hvilke variable skal med i modellen?

 

Variabeludvælgelse og modelspecifikation er to helt centrale spørgsmål for analytikere, statistikere, data scientists og lignende. Der findes en lang række teknikker til dette – dette juletip omhandler nogle af mulighederne med PROC GLMSELECT proceduren.

 

GLMSELECT proceduren hører hjemme i familien af generelle lineære modeller, hvor også PROC GLM og PROC REG hører hjemme. I PROC REG m.fl. er det bl.a. muligt at benytte BACKWARD, FORWARD og STEPWISE selection.  Ud fra et IT-synspunkt alene, er disse metoder meget efficiente, men med den eksponentielt stigende regnekraft er der kommet andre muligheder, som har nogle interessante statistiske egenskaber, f.eks. LAR (Efron et al., 2004), LASSO (Tibshirani, 1996) og ELASTIC NET. Disse metoder kan benyttes i GLMSELECT.

 

Vi skal i dette juletip benytte datasættet sashelp.baseball, hvor logsalary (spillernes løn) er den afhængig variabel, mens en stribe variable om spillernes performance på banen er mulige forklarende variable i modellen.

 

Stepwise med Akaikes informationskriterium (AIC)

Først benyttes STEPWISE (med optionerne Choose=AIC og STOP=AIC) som selektionsmetode:

 

proc glmselect data=sashelp.baseball plot=CriterionPanel;
 class league division;
 model logSalary = 	nAtBat nHits nHome nRuns nRBI nBB yrMajor crAtBat crHits 
crHome crRuns crRbi crBB league division nOuts nAssts nError / selection= stepwise(Choose=AIC stop=AIC) stats=all; run;

 

 

Hermed fås følgende resultat:

Variable selection - Stepwise.png

Tre variable (nHits, YrMajor og CrRuns) udvælges.

 

Least Angle Regression (LAR)

Samme data, bruttoliste af variable og optioner som ovenstående, men med LAR som selektionskriterium:

 

 


proc glmselect data=sashelp.baseball plot=CriterionPanel ;
 class league division;
 model logSalary = 	nAtBat nHits nHome nRuns nRBI nBB yrMajor crAtBat crHits crHome 
crRuns crRbi crBB league division nOuts nAssts nError / selection=LAR(Choose=AIC stop=AIC) stats=all ; run;

 

Ved brug af denne metode fås følgende resultat:

Variable selection - LAR.png

 

Otte variable (CrRuns, nHits, YrMajor, nBB, Division_East, nOuts, CrHits, og CrBbi) udvælges med denne metode – de samme tre som med STEPWISE selection, men altså yderligere fem variable.

 

Least Absolute Shrinkage and Selection Operator (LASSO)

Denne metode udbygger Ordinary Least Squares (OLS) med en bibetingelse om, at summen af den numeriske værdi af regressionskoefficienterne er mindre end en given grænseværdi.

 

 

 

proc glmselect data=sashelp.baseball plot=CriterionPanel ;
 class league division;
 model logSalary =    nAtBat nHits nHome nRuns nRBI nBB yrMajor crAtBat crHits crHome  
crRuns crRbi crBB league division nOuts nAssts nError                       / selection=LASSO(Choose=AIC stop=AIC) stats=all ; run;

 

Ved brug af denne fås følgende resultat:

Variable selection - LASSO.png

 

 

Seks variable (nHits, nRBI, nBB, YrMajor, CrHits, Division_East nOuts) udvælges med denne metode.

 

Opsamling

Vi har med ovenstående tre metoder fundet tre forskellige kandidater til en endelig model. Det skal understreges, at PROC GLMSELECT ikke erstatter PROC GLM, PROC REG eller andre procedurer i øvrigt. Ideen med GLMSELECT er, at finde nogle gode modelkandidater, som så kan fintunes og valideres ved brug af andre procedurer og værktøjer i f.eks. SAS/STAT eller Enterprise Miner.

 

Flere muligheder…

I GLMSELECT er det i øvrigt også muligt at benytte partitionerede dataset ved brug af PARTITION= optionen, ligesom det er muligt at benytte Class-statement i GLMSELECT og dermed håndtere kategorivariable. Det er muligt at bruge ELASTIC NET, hvor der både er en begrænsning på summen af de numeriske værdier af koefficienterne og en begrænsning på summen af de kvadrerede koefficienter. Endelig kan man benytte GROUP LASSO SELECTION, hvilket kræver at alle niveauer af class-variablen inddrages i modellen samtidigt.

 

Mere information om emnet findes her:

http://support.sas.com/documentation/cdl/en/statug/68162/HTML/default/viewer.htm#statug_glmselect_sy...

http://www2.sas.com/proceedings/sugi31/207-31.pdf