Come utilizzare regsubsets() in r per la selezione del modello
È possibile utilizzare la funzione regsubsets() del pacchetto leaps in R per trovare il sottoinsieme di variabili predittive che produce il miglior modello di regressione.
L’esempio seguente mostra come utilizzare questa funzione nella pratica.
Esempio: utilizzo di regsubsets() per la selezione del modello in R
Per questo esempio, utilizzeremo il set di dati mtcars integrato in R, che contiene misurazioni su 11 attributi diversi per 32 auto diverse.
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
Supponiamo di voler adattare un modello di regressione utilizzando hp come variabile di risposta e le seguenti potenziali variabili predittive:
- mpg
- peso
- merda
- qsec
Possiamo utilizzare la funzione regsubsets() del pacchetto leaps per eseguire una ricerca esaustiva per trovare il miglior modello di regressione:
library (leaps)
#find best regression model
bestSubsets <- regsubsets(hp ~ mpg + wt + drat + qsec, data=mtcars)
#view results
summary(bestSubsets)
Subset selection object
Call: regsubsets.formula(hp ~ mpg + wt + drat + qsec, data = mtcars)
4 Variables (and intercept)
Forced in Forced out
mpg FALSE FALSE
wt FALSE FALSE
drat FALSE FALSE
qsec FALSE FALSE
1 subsets of each size up to 4
Selection Algorithm: exhaustive
mpg wt drat qsec
1 ( 1 ) "*" " " " " " "
2 (1) " " "*" " " "*"
3 ( 1 ) “*” “*” “ “ “*”
4 ( 1 ) “*” “*” “*” “*”
Le stelle ( * ) nella parte inferiore del risultato indicano quali variabili predittive appartengono al miglior modello di regressione per ogni possibile modello con un numero diverso di variabili predittive.
Ecco come interpretare il risultato:
Per un modello con una singola variabile predittiva, il miglior modello di regressione viene prodotto utilizzando mpg come variabile predittiva.
Per un modello con due variabili predittive, il miglior modello di regressione viene prodotto utilizzando wt e qsec come variabili predittive.
Per un modello con tre variabili predittive, il miglior modello di regressione viene prodotto utilizzando mpg , wt e qsec come variabili predittive.
Per un modello con quattro variabili predittive, il miglior modello di regressione viene prodotto utilizzando mpg , wt , drat e qsec come variabili predittive.
Tieni presente che puoi anche estrarre le seguenti metriche per ciascun modello:
- rsq : il valore r quadrato per ciascun modello
- RSS : La somma residua dei quadrati per ciascun modello
- adjr2 : il valore r-quadrato modificato per ciascun modello
- cp : Cp di Malva per ciascun modello
- bic : il valore BIC per ciascun modello
Ad esempio, possiamo utilizzare la seguente sintassi per estrarre il valore R quadrato adattato per ciascuno dei quattro modelli migliori:
#view adjusted R-squared value of each model
summary(bestSubsets)$adjr2
[1] 0.5891853 0.7828169 0.7858829 0.7787005
Dal risultato possiamo vedere:
- Il valore R quadrato corretto per il modello con mpg come variabile predittiva è 0,589 .
- Il valore R quadrato corretto per il modello con wt e qsec come variabili predittive è 0,783 .
- Il valore R quadrato corretto per il modello con mp g , wt e qsec come variabili predittive è 0,786 .
- Il valore R quadrato corretto per il modello con mpg , wt , drat e qsec come variabili predittive è 0,779 .
Questi valori ci danno un’idea di quanto bene l’insieme di variabili predittive ha previsto il valore della variabile di risposta, aggiustato in base al numero di variabili predittive nel modello.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in R:
Come eseguire la regressione lineare multipla in R
Come eseguire la regressione a tratti in R
Come eseguire la regressione spline in R