¿Qué son los 'coeficientes con alias'?

24

Mientras construyo un modelo de regresión en R ( lm), frecuentemente recibo este mensaje

"there are aliased coefficients in the model"

¿Qué significa exactamente?

Además, debido a esto predict()también está dando una advertencia.

Aunque es solo una advertencia, quiero saber cómo podemos detectar / eliminar los coeficientes con alias antes de construir un modelo.

Además, ¿cuáles son las probables consecuencias de descuidar esta advertencia?

Mohit Verma
fuente

Respuestas:

32

Sospecho que esto no es un error lm, sino más bien vif(del paquete car). Si es así, creo que te has topado con una multicolinealidad perfecta . Por ejemplo

x1 <- rnorm( 100 )
x2 <- 2 * x1
y <- rnorm( 100 )
vif( lm( y ~ x1 + x2 ) )

produce tu error

En este contexto, "alias" se refiere a las variables que dependen linealmente de otras (es decir, causan una multicolinealidad perfecta).

El primer paso hacia la solución es identificar qué variable (s) son las culpables. correr

alias( lm( y ~ x1 + x2 ) )

para ver un ejemplo

Tamas Ferenci
fuente
Gracias. ¿Es 'multicolinealidad' lo mismo que tener 'coeficientes con alias'?
Mohit Verma
1
@MohitVerma: En esta terminología, '' alias '' se refiere a las variables que son linealmente dependientes (es decir, causan una multicolinealidad perfecta). Ver stat.ethz.ch/R-manual/R-patched/library/stats/html/alias.html . Actualizo la respuesta con esto.
Tamas Ferenci
3

Esto a menudo aparece cuando tiene singularidades en su X'Xmatriz de regresión (valores de NA en el resumen de la salida de regresión).

Base R lm()permite valores singulares / multicolinealidad perfecta como el valor predeterminado singular.ok = TRUE. Otros paquetes / funciones son más conservadores.

Por ejemplo, para la linearHypothesis()función en el carpaquete, el valor predeterminado es singular.ok = FALSE. Si tiene una multicolinealidad perfecta en su regresión, linearHypothesis()devolverá un error "hay coeficientes con alias en el modelo". Para lidiar con este error, establezca singular.ok = TRUE. Sin embargo, tenga cuidado, ya que esto puede enmascarar la multicolinealidad perfecta en su regresión.

velero
fuente
0

quizás demasiado bueno saber para algunos: también recibí este error cuando agregué dummies a una regresión. R omite automáticamente un ficticio, pero esto provoca un error en la prueba vif. Por lo tanto, una solución, para algunos, podría ser eliminar un maniquí manualmente.

Palmadita
fuente