Sesgo variable omitido (OVB) y multicolinealidad

Aug 31 2020

En un modelo de regresión lineal, la razón por la que controlamos las variables es para evitar el sesgo de la variable omitida (OVB). Es decir, supongamos que estamos tratando de ajustar el modelo$$ Y = \beta_{0} + \beta_{1}X_{1} + \varepsilon $$ sin embargo, hay otra variable $X_{2}$que se correlaciona con$X_{1}$ e influencias $Y$, luego la estimación para $\beta_{1}$, que podemos llamar $\hat{\beta_{1}}$, estará sesgado. La forma de eliminar este sesgo es agregar una variable$X_{2}$ en nuestro modelo, es decir, se ajusta al modelo $$ Y = \beta_{0} + \beta_{1}X_{1} + \beta_{2}X_{2} + \varepsilon $$Sin embargo, mi pregunta es ¿por qué esto no viola la suposición de que las covariables en un modelo de regresión lineal múltiple no deberían estar altamente correlacionadas entre sí (sin multicolinealidad)? Y si$X_{1}$ y $X_{2}$son multicolineales? En ese caso, omitiendo$X_{2}$ podría conducir a OVB, pero incluyendo $X_{2}$podría conducir a la multicolinealidad. ¿Qué se hace en casos como este?

Respuestas

4 Jonathan Aug 31 2020 at 18:47

Esta es una buena pregunta. La confusión surge del "supuesto" de no multicolinealidad. De la página de Wikipedia sobre multicolinealidad:

Tenga en cuenta que en los enunciados de los supuestos subyacentes a los análisis de regresión, como los mínimos cuadrados ordinarios, la frase "sin multicolinealidad" generalmente se refiere a la ausencia de multicolinealidad perfecta, que es una relación lineal exacta (no estocástica) entre los predictores. En tal caso, la matriz de datos$X$ tiene menos de rango completo y, por lo tanto, la matriz de momentos $X^TX$no se puede invertir. En estas circunstancias, para un modelo lineal general$y = X\beta + \epsilon$ , el estimador de mínimos cuadrados ordinarios $\hat\beta_{OLS} = (X^TX)^{-1} X^T y $ no existe.

La multicolinealidad en el sentido que describe inflará la varianza del estimador MCO, pero a menos que incluya $X_2$en la regresión, el estimador de MCO está sesgado. En resumen, si tiene que preocuparse por OVB, no debe preocuparse por la multicolinealidad. ¿Por qué querríamos un estimador más preciso pero sesgado?

Con más detalle, no estoy seguro de que la multicolinealidad (o inflación de la varianza) sea significativa para considerar cuando nos ocupamos de OVB. Asumir

$$ Y = 5X_1 + X_2 + \epsilon $$ $$ X_1 = -0.1X_2 + u $$

Si $\text{Cov}(X_2, u) = 0$, la correlación entre $X_1$ y $X_2$ es

$$ \rho = \frac{\sigma_{x_1x_2}}{\sigma_{x_1}\sigma_{x_2}} = \frac{-0.1\sigma_{x_2}}{\sqrt{0.01\sigma_{x_2}^2 + \sigma_u^2}} $$

Si dejamos $\sigma_{x_2} = \sigma_{x_1}$, luego $\rho \approx -0.1$(que es un caso en el que no nos preocuparíamos por la multicolinealidad). Simulando en R, vemos que una regresión MCO de$Y$ en $X_1$ controlando por $X_2$es imparcial. Sin embargo, el sesgo que obtenemos al excluir$X_2$ es bastante pequeño.

iter <- 10000 # NUMBER OF ITERATIONS
n <- 100 # NUMBER OF OBSERVATIONS PER SAMPLE
sigma_e = sigma_u = sigma_x2 = 5
mu_e = mu_u = mu_x2 = 0
res0 = res1 = list() # LISTS FOR SAVING RESULTS

for(i in 1:iter) {
  
  #print(i)
  
  x2 <- rnorm(n, mu_x2, sigma_x2)
  u <- rnorm(n, mu_u, sigma_u)
  e <- rnorm(n, mu_e, sigma_e)
  
  x1 <- -0.1*x2 + u
  y <- 5*x1 + x2 + e
  
  res0[[i]] <-  lm(y ~ x1 + x2)$coef res1[[i]] <- lm(y ~ x1)$coef
  
}

res0 <- as.data.frame(do.call("rbind", res0))
res1 <- as.data.frame(do.call("rbind", res1))

Si aumentamos la varianza de $X_2$ así que eso $\rho \approx -0.95$

sigma_x2 <- 150

y repetimos la simulación vemos que esto no afecta la precisión del estimador para $X_1$ (pero la precisión para $X_2$aumenta). Sin embargo, el sesgo ahora es bastante grande, lo que significa que existe una gran diferencia entre la asociación entre$X_1$ y y $Y$, donde otros factores (es decir, $X_2$) no se mantienen constantes, y el efecto de $X_1$ en $Y$ ceteris paribus . Siempre que haya alguna variación en$X_1$ eso no depende de $X_2$ (es decir, $\sigma_u^2 > 0$), podemos recuperar este efecto mediante OLS; la precisión del estimador dependerá del tamaño de$\sigma_u^2$ comparado con $\sigma_\epsilon^2$.

Podemos ilustrar el efecto de la inflación de la varianza simulando con y sin correlación entre $X_1$ y $X_2$ y retrocediendo $Y$ en $X_1$ y $X_2$ tanto para el caso correlacionado como para el no correlacionado.

install.packages("mvtnorm")
library(mvtnorm)

sigma_x2 <- 5 # RESET STANDARD DEVIATION FOR X2
res0 = res1 = list()

Sigma <- matrix(c(sigma_x1^2, sigma_x1*sigma_x2*-0.95, 0,
                  sigma_x1*sigma_x2*-0.95, sigma_x2^2, 0,
                  0, 0, sigma_e^2), ncol = 3)

Sigma0 <- matrix(c(sigma_x1^2, 0, 0,
                   0, sigma_x2^2, 0,
                   0, 0, sigma_e^2), ncol = 3)


for(i in 1:iter) {
  
  print(i)
  
  tmp <- rmvnorm(n, mean = c(mu_x1, mu_x2, mu_e), sigma = Sigma0)
  x1 <- tmp[,1]
  x2 <- tmp[,2]
  e <- tmp[,3]
  
  y <- 5*x1 + x2 + e
  res0[[i]] <-  lm(y ~ x1 + x2)$coef tmp <- rmvnorm(n, mean = c(mu_x1, mu_x2, mu_e), sigma = Sigma) x1 <- tmp[,1] x2 <- tmp[,2] e <- tmp[,3] y <- 5*x1 + x2 + e res1[[i]] <- lm(y ~ x1 + x2)$coef
  
}

res0 <- as.data.frame(do.call("rbind", res0))
res1 <- as.data.frame(do.call("rbind", res1))

Esto muestra que la precisión del estimador sería mejor si $X_1$ y $X_2$no estaban correlacionados, pero si no lo están, no hay nada que podamos hacer al respecto . Parece tan valioso como saber que si el tamaño de nuestra muestra fuera mayor, la precisión sería mejor.

Puedo pensar en un ejemplo en el que potencialmente podríamos preocuparnos tanto por OVB como por la multicolinealidad. Dilo$X_2$es una construcción teórica y no está seguro de cómo medirla. Podrías usar$X_{2A}$, $X_{2B}$y / o $X_{2C}$. En este caso, puede optar por incluir solo una de estas medidas de$X_2$en lugar de todos ellos para evitar demasiada multicolinealidad. Sin embargo, si está interesado principalmente en el efecto de$X_1$ esta no es una preocupación importante.