10 votos

¿Se encuentra implícita en las variables categóricas multicolinealidad?

Me di cuenta mientras trasteando con un modelo multivariante de regresión hubo una pequeña pero notable efecto de la multicolinealidad, como medido por la varianza de la inflación de factores, dentro de las categorías de una variable categórica (después de la exclusión de la categoría de referencia, por supuesto).

Por ejemplo, digamos que tenemos un conjunto de datos con una variable continua y y una variable categórica nominal x que tiene k posibles valores mutuamente excluyentes. Nosotros código de los $k$ valores posibles, como 0/1 variables ficticias $x_1, x_2,\dots ,x_k$. A continuación, realizamos un modelo de regresión $y = b_0 + b_1x_1 + b_2x_2 + \dots + b_{k-1}x_{k-1}$. La VIF calificaciones de las $k-1$ dummy variables resultan ser no-cero. De hecho, como el número de categorías aumenta, el aumento de la VIFs. El centrado de las variables ficticias no aparece para cambiar la VIFs.

La explicación intuitiva, parece ser que los que se excluyen mutuamente condición de las categorías en la variable categórica la causa de esta ligera multicolinealidad. Es este un trivial encontrar o es una cuestión a tener en cuenta cuando la construcción de modelos de regresión con variables categóricas?

8voto

jldugger Puntos 7490

No puedo reproducir exactamente este fenómeno, pero puedo demostrar que la VIF no necesariamente aumentan a medida que el número de categorías aumenta.

La intuición es simple: las variables categóricas pueden ser hechas ortogonal adecuados diseños experimentales. Por lo tanto, no debería estar, en general, no hay relación entre el número de categorías y la multicolinealidad.

Aquí está una R función para crear conjuntos de datos categóricos con definibles número de categorías (para dos variables independientes) y definibles cantidad de réplica para cada categoría. Representa una equilibrada estudio en el que cada combinación de la categoría se observa un número igual de veces, $n$:

trial <- function(n, k1=2, k2=2) {
  df <- expand.grid(1:k1, 1:k2)
  df <- do.call(rbind, lapply(1:n, function(i) df))
  df$y <- rnorm(k1*k2*n)
  fit <- lm(y ~ Var1+Var2, data=df)
  vif(fit)
}

La aplicación, me parece la VIFs son siempre en sus valores más bajos posibles, $1$, lo que refleja el equilibrio (que se traduce en columnas ortogonales en el diseño de la matriz). Algunos ejemplos:

sapply(1:5, trial) # Two binary categories, 1-5 replicates per combination
sapply(1:5, function(i) trial(i, 10, 3)) # 30 categories, 1-5 replicates

Esto sugiere la multicolinealidad puede estar creciendo debido a un desequilibrio creciente en el diseño. Para probar esto, inserte la línea de

  df <- subset(df, subset=(y < 0))

antes de la fit línea trial. Esto elimina la mitad de los datos al azar. Volver a ejecutar

sapply(1:5, function(i) trial(i, 10, 3))

muestra que la VIFs no son igual a $1$ (pero siguen cerca de él, al azar). Todavía no aumentan con más categorías: sapply(1:5, function(i) trial(i, 10, 10)) produce comparables los valores.

2voto

mat_geek Puntos 1367

Tiene la restricción que se puede ver es inherente a la distribución multinomial, es decir, que uno y sólo uno de x $_i$s será 1 y el resto será 0. Por lo que tiene la restricción lineal ∑X $_i$ = 1. Eso significa decir X $_1$ = 1 - ∑X $_i$ donde la suma se toma sobre i ≠ 1. Este es el efecto de colinealidad que estás notando. No hay nada inusual o molesto acerca de él.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X