我们如何处理与曝光共线的混杂因素?

机器算法验证 回归 相关性 因果关系 混杂 达格
2022-03-08 20:18:31

X - 治疗变量

Y - 结果变量

Z - 混杂

DAG:

在此处输入图像描述

模型:

y ~ x + z

问题

如果 x 和 z 彼此强相关,那么是否违反了多重共线性假设?另外,这个模型导致 x 的 b 系数更小或接近于零?

你们是如何解决这种情况的?DAG 给出了一个原因,但存在多重共线性。你的方法不同是相关性是中等还是弱?

1个回答

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    

因此,我们将Xand组合Z成一个新变量 ,WW仅条件:

> 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