Come risolvere in r: ci sono coefficienti di alias nel modello


Un errore che potresti riscontrare in R è:

 Error in vive.default(model): there are aliased coefficients in the model

Questo errore si verifica in genere quando esiste multicollinearità in un modello di regressione. Cioè, due o più variabili predittive nel modello sono altamente (o perfettamente) correlate.

Quando ciò accade, diciamo che una variabile è un “alias” di un’altra variabile, il che causa problemi durante l’adattamento di un modello di regressione.

L’esempio seguente mostra come correggere questo errore nella pratica.

Come riprodurre l’errore

Supponiamo di applicare il seguente modello di regressione in R:

 #make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2+x3)

Possiamo utilizzare la funzione vive() del pacchetto auto per calcolare i valori VIF per ciascuna variabile predittrice nel modello per determinare se la multicollinearità è un problema:

 library (car)

#calculate VIF values for predictor variables
lively(model)

Error in vive.default(model): there are aliased coefficients in the model

Riceviamo un errore che indica ” ci sono coefficienti alias nel modello”.

Questo ci dice che due o più variabili predittive nel modello sono perfettamente correlate.

Come correggere l’errore

Per determinare quali variabili predittive sono perfettamente correlate, possiamo utilizzare la funzione cor() per creare una matrice di correlazione per le variabili:

 #place variables in data frame
df <- data. frame (x1, x2, x3, y)

#create correlation matrix for data frame
cor(df)

           x1 x2 x3 y
x1 1.00000000 0.126886263 0.126886263 0.065047543
x2 0.12688626 1.000000000 1.000000000 -0.009107573
x3 0.12688626 1.000000000 1.000000000 -0.009107573
y 0.06504754 -0.009107573 -0.009107573 1.000000000

Possiamo vedere che le variabili x2 e x3 hanno un coefficiente di correlazione pari a 1. Questo ci dice che queste due variabili causano l’errore perché sono perfettamente correlate.

Per correggere questo errore, è sufficiente modificare nuovamente il modello di regressione e tralasciare una di queste due variabili.

Non importa quale variabile omettiamo poiché entrambe forniscono esattamente le stesse informazioni nel modello di regressione.

Per semplicità, rimuoviamo x3 e adattiamo nuovamente il modello di regressione:

 library (car)

#make this example reproducible
set. seeds (0)

#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)

#fit regression model
model <- lm(y~x1+x2)

#calculate VIF values for predictor variables in model
lively(model)

      x1 x2 
1.016364 1.016364 

Tieni presente che questa volta non riceviamo alcun errore durante il calcolo dei valori VIF per il modello perché la multicollinearità non è più un problema.

Correlati: Come calcolare e interpretare i valori VIF in R

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in R:

Come riparare in R: la sostituzione ha lunghezza zero
Come risolvere in R: gli argomenti coinvolgono un numero diverso di righe
Come risolvere in R: l’argomento non è né numerico né logico: return na

Aggiungi un commento

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