Omitted Variable Bias (OVB) e multicolinearidade

Aug 31 2020

Em um modelo de regressão linear, o motivo pelo qual controlamos as variáveis ​​é evitar o viés da variável omitida (OVB). Ou seja, suponha que estejamos tentando ajustar o modelo$$ Y = \beta_{0} + \beta_{1}X_{1} + \varepsilon $$ no entanto, há outra variável $X_{2}$que está correlacionado com$X_{1}$ e influências $Y$, então a estimativa para $\beta_{1}$, que podemos chamar $\hat{\beta_{1}}$, será tendencioso. A maneira de remover esse viés é adicionar variáveis$X_{2}$ em nosso modelo, ou seja, ajustar o modelo $$ Y = \beta_{0} + \beta_{1}X_{1} + \beta_{2}X_{2} + \varepsilon $$No entanto, minha pergunta é por que isso não viola a suposição de que covariáveis ​​em um modelo de regressão linear múltipla não devem ser altamente correlacionadas entre si (sem multicolinearidade)? E se$X_{1}$ e $X_{2}$são multicolineares? Nesse caso, omitindo$X_{2}$ pode levar a OVB, mas incluindo $X_{2}$pode levar à multicolinearidade. O que é feito em casos como este?

Respostas

4 Jonathan Aug 31 2020 at 18:47

Essa é uma boa pergunta. A confusão decorre da "suposição" de não haver multicolinearidade. Na página da Wikipedia sobre multicolinearidade:

Observe que nas declarações das suposições subjacentes às análises de regressão, como mínimos quadrados ordinários, a frase "sem multicolinearidade" geralmente se refere à ausência de multicolinearidade perfeita, que é uma relação linear exata (não estocástica) entre os preditores. Nesse caso, a matriz de dados$X$ tem menos que a classificação completa e, portanto, a matriz de momento $X^TX$não pode ser invertido. Nessas circunstâncias, para um modelo linear geral$y = X\beta + \epsilon$ , o estimador de mínimos quadrados ordinários $\hat\beta_{OLS} = (X^TX)^{-1} X^T y $ não existe.

A multicolinearidade no sentido que você descreve aumentará a variância do estimador OLS, mas a menos que você inclua $X_2$na regressão, o estimador OLS é enviesado. Resumindo, se você precisa se preocupar com o OVB, não deve se preocupar com a multicolinearidade. Por que desejaríamos um estimador mais preciso, mas tendencioso?

Mais detalhadamente, não estou certo de que a multicolinearidade (ou inflação de variância) seja significativa a considerar quando estamos preocupados com OVB. Presumir

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

E se $\text{Cov}(X_2, u) = 0$, a correlação entre $X_1$ e $X_2$ é

$$ \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}} $$

Se deixarmos $\sigma_{x_2} = \sigma_{x_1}$, então $\rho \approx -0.1$(que é um caso em que não nos preocuparíamos com a multicolinearidade). Simulando em R, vemos que uma regressão OLS de$Y$ em $X_1$ controlando para $X_2$é imparcial. No entanto, o viés que obtemos ao excluir$X_2$ é muito pequeno.

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))

Se aumentarmos a variância de $X_2$ de modo a $\rho \approx -0.95$

sigma_x2 <- 150

e repetir a simulação, vemos que isso não afeta a precisão do estimador para $X_1$ (mas a precisão para $X_2$aumenta). No entanto, o viés agora é muito grande, o que significa que há uma grande diferença entre a associação entre$X_1$ e e $Y$, onde outros fatores (ou seja, $X_2$) não são mantidos constantes, e o efeito de $X_1$ em $Y$ ceteris paribus . Contanto que haja alguma variação em$X_1$ isso não depende de $X_2$ (ou seja, $\sigma_u^2 > 0$), podemos recuperar esse efeito por OLS; a precisão do estimador dependerá do tamanho do$\sigma_u^2$ comparado com $\sigma_\epsilon^2$.

Podemos ilustrar o efeito da inflação de variância, simulando com e sem correlação entre $X_1$ e $X_2$ e regredindo $Y$ em $X_1$ e $X_2$ para o caso correlacionado e não 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))

Isso mostra que a precisão do estimador seria melhor se $X_1$ e $X_2$não estavam correlacionados, mas se não forem, não há nada que possamos fazer a respeito . Parece tão valioso quanto saber que, se o tamanho da nossa amostra fosse maior, a precisão seria melhor.

Posso pensar em um exemplo em que poderíamos potencialmente nos preocupar tanto com OVB quanto com a multicolinearidade. Diz isso$X_2$é uma construção teórica e você não tem certeza sobre como medi-la. Você poderia usar$X_{2A}$, $X_{2B}$, e / ou $X_{2C}$. Neste caso, você pode optar por incluir apenas uma dessas medidas de$X_2$em vez de todos eles para evitar muita multicolinearidade. No entanto, se você estiver interessado principalmente no efeito de$X_1$ esta não é uma grande preocupação.