Come utilizzare stepaic in r per la selezione delle funzionalità


L’Akaike Information Criterion ( AIC ) è una metrica utilizzata per quantificare quanto bene un modello si adatta a un set di dati.

Viene calcolato come segue:

AIC = 2K – 2 ln (L)

Oro:

  • K: il numero di parametri del modello. Il valore predefinito di K è 2, quindi un modello con una sola variabile predittrice avrà un valore K di 2+1 = 3.
  • ln (L) : la log-verosimiglianza del modello. La maggior parte dei software statistici può calcolare automaticamente questo valore.

L’AIC è progettato per trovare il modello che spiega la maggiore variazione nei dati, penalizzando i modelli che utilizzano un numero eccessivo di parametri.

È possibile utilizzare la funzione stepAIC() del pacchetto MASS in R per aggiungere e rimuovere in modo iterativo variabili predittive da un modello di regressione finché non si trova l’insieme di variabili predittive (o “funzionalità”) che produce il modello con il valore AIC più basso.

Questa funzione utilizza la seguente sintassi di base:

stepAIC(oggetto, direzione, …)

Oro:

  • oggetto : il nome di un modello modificato
  • direzione : il tipo di ricerca del passo da utilizzare (“indietro”, “avanti” o “entrambi”)

L’esempio seguente mostra come utilizzare questa funzione nella pratica.

Esempio: utilizzo di stepAIC() per la selezione delle funzionalità 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 stepAIC() del pacchetto MASS per aggiungere e sottrarre varie variabili predittive dal modello fino ad arrivare al modello con il valore AIC più basso possibile:

 library (MASS)

#fit initial multiple linear regression model
model <- lm(hp ~ mpg + wt + drat + qsec, data=mtcars)

#use both forward and backward selection to find model with lowest AIC
stepAIC(model, direction=" both ")

Start: AIC=226.88
hp ~ mpg + wt + drat + qsec

       Df Sum of Sq RSS AIC
- drat 1 94.9 28183 224.98
- mpg 1 1519.4 29608 226.56
  none 28088 226.88
- wt 1 3861.9 31950 229.00
-qsec 1 28102.2 56190 247.06

Step: AIC=224.98
hp ~ mpg + wt + qsec

       Df Sum of Sq RSS AIC
- mpg 1 1424.5 29608 224.56
  none 28183 224.98
+ drat 1 94.9 28088 226.88
- wt 1 3797.9 31981 227.03
-qsec 1 29625.1 57808 245.97

Step: AIC=224.56
hp ~ wt + qsec

       Df Sum of Sq RSS AIC
  none 29608 224.56
+ mpg 1 1425 28183 224.98
+ drat 1 0 29608 226.56
- wt 1 43026 72633 251.28
-qsec 1 52881 82489 255.35

Call:
lm(formula = hp ~ wt + qsec, data = mtcars)

Coefficients:
(Intercept) wt qsec  
     441.26 38.67 -23.47  

Ecco come interpretare il risultato:

(1) Innanzitutto, iniziamo adattando un modello di regressione con le quattro variabili predittive. Questo modello ha un valore AIC di 226,88 .

(2) Successivamente, stepAIC determina che la rimozione di drat come variabile predittrice ridurrà ulteriormente il valore AIC a 224,98 .

(3) Successivamente, il modello stepAIC determina che la rimozione di mpg come variabile predittiva ridurrà ulteriormente il valore AIC a 224,56 .

(4) Infine, stepAIC determina che non è possibile ridurre ulteriormente il valore AIC aggiungendo o rimuovendo variabili.

Il modello finale è quindi:

cv = 441,26 + 38,67 (peso) – 23,47 (qsec)

Questo modello ha un valore AIC di 224,56 .

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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *