Regression
我們如何處理與曝光共線的混雜因素?
X - 治療變量
Y - 結果變量
Z - 混雜
日:
模型:
y ~ x + z
題
如果 x 和 z 彼此強相關,那麼是否違反了多重共線性假設?另外,這個模型導致 x 的 b 係數更小或接近於零?
**你們是如何解決這種情況的?DAG 給出了一個原因,但存在多重共線性。**你的方法不同是相關性是中等還是弱?
X
只有當和之間的相關性為 1 時,多重共線性才會成為問題Z
。在這種情況下,X
可以Z
將 和 組合成一個變量,從而提供無偏估計。我們可以通過一個簡單的模擬看到這一點> set.seed(1) > N <- 100 > Z <- rnorm(N) > X <- Z # perfect collinearity > Y <- 4 + X + Z + rnorm(N) > lm(Y ~ X) %>% summary() Call: lm(formula = Y ~ X) Residuals: Min 1Q Median 3Q Max -1.8768 -0.6138 -0.1395 0.5394 2.3462 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.96231 0.09699 40.85 <2e-16 *** X 1.99894 0.10773 18.56 <2e-16 ***
這是有偏見的。但是由於完美的共線性,調整為
Z
不起作用:lm(Y ~ X + Z) %>% summary() Call: lm(formula = Y ~ X + Z) Residuals: Min 1Q Median 3Q Max -1.8768 -0.6138 -0.1395 0.5394 2.3462 Coefficients: (1 not defined because of singularities) Estimate Std. Error t value Pr(>|t|) (Intercept) 3.96231 0.09699 40.85 <2e-16 *** X 1.99894 0.10773 18.56 <2e-16 *** Z NA NA NA NA
因此,我們將
X
and組合Z
成一個新變量 ,W
和W
僅條件:> W <- X + Z > lm(Y ~ W) %>% summary() Call: lm(formula = Y ~ W) Residuals: Min 1Q Median 3Q Max -1.8768 -0.6138 -0.1395 0.5394 2.3462 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.96231 0.09699 40.85 <2e-16 *** W 0.99947 0.05386 18.56 <2e-16 ***
我們得到一個無偏估計。
關於你的觀點:
這個模型導致 x 的 b 係數更小或接近於零?
不,不應該是這樣。如果相關性很高,估計可能會失去一些精度,但仍然應該是無偏的。我們再次可以通過模擬看到:
> nsim <- 1000 > vec.X <- numeric(nsim) > vec.cor <- numeric(nsim) > # > set.seed(1) > for (i in 1:nsim) { + + Z <- rnorm(N) + X <- Z + rnorm(N, 0, 0.3) # high collinearity + vec.cor[i] <- cor(X, Z) + Y <- 4 + X + Z + rnorm(N) + m0 <- lm(Y ~ X + Z) + vec.X[i] <- coef(m0)[2] + + } > mean(vec.X) [1] 1.00914 > mean(vec.cor) [1] 0.9577407
請注意,在上面的第一個示例中,我們知道數據生成過程,並且因為我們知道這一點
X
並且Z
具有相同的影響,因此兩個變量的簡單總和起作用。然而在實踐中我們不會知道數據生成過程,因此,如果我們確實有完美的共線性(當然在實踐中不太可能),那麼我們可以使用與上面第二個模擬相同的方法,並添加一些小的隨機誤差Z
這將揭示 的無偏估計X
。你的方法不同是相關性是中等還是弱?
如果相關性是中等或一周,則在調節上應該沒有問題
Z