Come testare la multicollinearità in r


Nell’analisi di regressione, la multicollinearità si verifica quando due o più variabili predittive sono altamente correlate tra loro, in modo tale da non fornire informazioni univoche o indipendenti nel modello di regressione.

Se il grado di correlazione è sufficientemente elevato tra le variabili predittive, ciò può causare problemi durante l’adattamento e l’interpretazione del modello di regressione.

Il modo più semplice per rilevare la multicollinearità in un modello di regressione è calcolare una metrica nota come fattore di inflazione della varianza, spesso abbreviato VIF .

VIF misura la forza della correlazione tra le variabili predittive in un modello. Assume un valore compreso tra 1 e infinito positivo.

Utilizziamo le seguenti regole pratiche per interpretare i valori VIF:

  • VIF = 1: non esiste alcuna correlazione tra una determinata variabile predittrice e qualsiasi altra variabile predittrice nel modello.
  • VIF compreso tra 1 e 5: esiste una correlazione moderata tra una determinata variabile predittiva e altre variabili predittive nel modello.
  • VIF > 5 : esiste una forte correlazione tra una determinata variabile predittrice e altre variabili predittive nel modello.

L’esempio seguente mostra come rilevare la multicollinearità in un modello di regressione in R calcolando i valori VIF per ciascuna variabile predittrice nel modello.

Esempio: test per la multicollinearità in R

Supponiamo di avere il seguente frame di dati contenente informazioni su vari giocatori di basket:

 #create data frame
df = data. frame (rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86),
                points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19),
                assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5),
                rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7))

#view data frame
df

   rating points assists rebounds
1 90 25 5 11
2 85 20 7 8
3 82 14 7 10
4 88 16 8 6
5 94 27 5 6
6 90 20 7 9
7 76 12 6 6
8 75 15 9 10
9 87 14 9 10
10 86 19 5 7

Supponiamo di voler adattare un modello di regressione lineare multipla utilizzando il punteggio come variabile di risposta e punti , assist e rimbalzi come variabili predittive.

Per calcolare il VIF per ciascuna variabile predittrice nel modello, possiamo utilizzare la funzione vive() del pacchetto auto :

 library (car)

#define multiple linear regression model
model <- lm(rating ~ points + assists + rebounds, data=df)

#calculate the VIF for each predictor variable in the model
lively(model)

  points assists rebounds 
1.763977 1.959104 1.175030 

Possiamo vedere i valori VIF per ciascuna delle variabili predittive:

  • punti: 1,76
  • assist: 1,96
  • rimbalzi: 1.18

Poiché ciascuno dei valori VIF delle variabili predittive nel modello è vicino a 1, la multicollinearità non è un problema nel modello.

Nota : se la multicollinearità risulta essere un problema nel modello, nella maggior parte dei casi la soluzione più rapida è rimuovere una o più variabili altamente correlate.

Questa è spesso una soluzione accettabile perché le variabili rimosse sono comunque ridondanti e aggiungono poche informazioni univoche o indipendenti nel modello.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come eseguire la regressione lineare multipla in R
Come creare un grafico QQ in R
Come creare una trama residua in R

Aggiungi un commento

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