想象一下,我有一个像这样的数据集
df <- data.frame(y=c(11:16), x1=c(23,NA,27,20,20,21), x2=c(NA,9,2,9,7,8))
df
y x1 x2
1 11 23 NA
2 12 NA 9
3 13 27 2
4 14 20 9
5 15 20 7
6 16 21 8
如果我执行多元线性回归,我得到
m <- lm(y~x1+x2, data=df)
summary(m)
Call:
lm(formula = y ~ x1 + x2, data = df)
Residuals:
3 4 5 6
-1.744e-01 -1.047e+00 -4.233e-16 1.221e+00
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 19.72093 27.06244 0.729 0.599
x1 -0.24419 0.93927 -0.260 0.838
x2 0.02326 1.01703 0.023 0.985
Residual standard error: 1.617 on 1 degrees of freedom
(2 observations deleted due to missingness)
Multiple R-squared: 0.4767, Adjusted R-squared: -0.5698
F-statistic: 0.4556 on 2 and 1 DF, p-value: 0.7234
在这里,由于缺失,我们删除了2个观察值(1和2) .
为了减少丢失数据的影响,计算2个不同的简单线性回归是否明智?
即
m1 <- lm(y~x1, data=df)
m2 <- lm(y~x2, data=df)
在这种情况下,对于每个模型,由于缺失,我们将仅删除1个观察 .
1 回答
不,那可能不是明智之举 . 因为你遇到了omitted variables bias的问题 . 您可以看到这将如何影响您的估算值,例如
x1
,这是夸大的:注意,你感兴趣的关系是
y~x1+x2
,所以x1
对y
的影响占x2
的影响,反之亦然 . 这当然与分别估算y~x1
和y~x2
不同,其中省略了另一个解释变量的影响 .现在有一些处理缺失值的策略 . 一种选择是估计贝叶斯模型,例如使用
JAGS
,您可以在其中建模缺失值 . 例如,下面是一个例子,其中我采用每个变量的均值和标准差来模拟缺失值:这只是我的头脑 . 有关如何处理缺失值的更好和更有见地的建议,我建议您访问stats.stackexchange