Omissis Variable Bias (OVB) e multicollinearità
In un modello di regressione lineare, il motivo per cui controlliamo le variabili è prevenire il bias da variabili omesse (OVB). Cioè, supponiamo di provare ad adattare il modello$$ Y = \beta_{0} + \beta_{1}X_{1} + \varepsilon $$ tuttavia, c'è un'altra variabile $X_{2}$che è correlato con$X_{1}$ e influenze $Y$, quindi la stima per $\beta_{1}$, che possiamo chiamare $\hat{\beta_{1}}$, sarà prevenuto. Il modo per rimuovere questo bias è aggiungere una variabile$X_{2}$ nel nostro modello, cioè adattare il modello $$ Y = \beta_{0} + \beta_{1}X_{1} + \beta_{2}X_{2} + \varepsilon $$Tuttavia, la mia domanda è perché questo non viola il presupposto che le covariate in un modello di regressione lineare multipla non dovrebbero essere altamente correlate tra loro (nessuna multicollinearità)? Cosa succede se$X_{1}$ e $X_{2}$sono multicollineari? In tal caso, omettendo$X_{2}$ potrebbe portare a OVB, ma includendo $X_{2}$potrebbe portare alla multicollinearità. Cosa si fa in casi come questo?
Risposte
Questa è una buona domanda. La confusione nasce dal "presupposto" di non multicollinearità. Dalla pagina di Wikipedia sulla multicollinearità:
Si noti che nelle dichiarazioni delle ipotesi alla base delle analisi di regressione come i minimi quadrati ordinari, la frase "nessuna multicollinearità" di solito si riferisce all'assenza di multicollinearità perfetta, che è una relazione lineare esatta (non stocastica) tra i predittori. In tal caso, la matrice dei dati$X$ ha un rango inferiore al pieno, e quindi la matrice dei momenti $X^TX$non può essere invertito. In queste circostanze, per un modello lineare generale$y = X\beta + \epsilon$ , lo stimatore dei minimi quadrati ordinario $\hat\beta_{OLS} = (X^TX)^{-1} X^T y $ non esiste.
La multicollinearità nel senso che descrivi aumenterà la varianza dello stimatore OLS, ma a meno che tu non includa $X_2$nella regressione, lo stimatore OLS è distorto. In breve, se devi preoccuparti di OVB, non dovresti preoccuparti della multicollinearità. Perché dovremmo volere uno stimatore più preciso ma parziale?
Più in dettaglio, non sono sicuro che la multicollinearità (o l'inflazione della varianza) sia affatto significativa da considerare quando ci occupiamo di OVB. Assumere
$$ Y = 5X_1 + X_2 + \epsilon $$ $$ X_1 = -0.1X_2 + u $$
Se $\text{Cov}(X_2, u) = 0$, la correlazione tra $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 lasciamo $\sigma_{x_2} = \sigma_{x_1}$, poi $\rho \approx -0.1$(che è un caso in cui non ci preoccuperemmo della multicollinearità). Simulando in R, vediamo che una regressione OLS di$Y$ sopra $X_1$ controllando per $X_2$è imparziale. Tuttavia, il pregiudizio che otteniamo escludendo$X_2$ è piuttosto piccolo.
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 aumentiamo la varianza di $X_2$ così che $\rho \approx -0.95$
sigma_x2 <- 150
e ripetiamo la simulazione vediamo che questo non influisce sulla precisione dello stimatore per $X_1$ (ma la precisione per $X_2$aumenta). Tuttavia, il bias ora è piuttosto grande, il che significa che c'è una grande differenza tra l'associazione tra$X_1$ e e $Y$, dove altri fattori (ovvero, $X_2$) non vengono mantenuti costanti e l'effetto di $X_1$ sopra $Y$ ceteris paribus . Finché c'è qualche variazione in$X_1$ che non dipende da $X_2$ (cioè, $\sigma_u^2 > 0$), possiamo recuperare questo effetto da OLS; la precisione dello stimatore dipenderà dalla dimensione di$\sigma_u^2$ rispetto a $\sigma_\epsilon^2$.
Possiamo illustrare l'effetto dell'inflazione varianza simulando con e senza correlazione tra $X_1$ e $X_2$ e regredire $Y$ sopra $X_1$ e $X_2$ sia per il caso correlato che per quello non correlato.
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))
Ciò dimostra che la precisione dello stimatore sarebbe migliore se $X_1$ e $X_2$non erano correlati, ma se non lo sono, non possiamo farci niente . Sembra prezioso quanto sapere che se la dimensione del nostro campione fosse maggiore, la precisione sarebbe migliore.
Posso pensare a un esempio in cui potremmo potenzialmente preoccuparci sia dell'OVB che della multicollinearità. Dillo$X_2$è un costrutto teorico e non sei sicuro di come misurarlo. Potresti usare$X_{2A}$, $X_{2B}$e / o $X_{2C}$. In questo caso, potresti scegliere di includere solo una delle misure di$X_2$piuttosto che tutti per evitare troppa multicollinearità. Tuttavia, se sei interessato principalmente all'effetto di$X_1$ questa non è una delle principali preoccupazioni.