我们如何处理与曝光共线的混杂因素?
机器算法验证
回归
相关性
因果关系
混杂
达格
2022-03-08 20:18:31
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
因此,我们将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
其它你可能感兴趣的问题