我应该在线性模型(在 R 中)中使用 na.omit 或 na.exclude 吗?

机器算法验证 r 回归 线性模型 残差 缺失数据
2022-03-25 23:07:38

我试图了解使用不同的 na.actions(na.omit 和 na.exclude)来处理使用 R 的线性模型中的缺失数据之间的区别。我在 R 中使用了 lm 函数(https://stat.ethz.ch/ R-manual/R-devel/library/stats/html/lm.html)。

对于 na.omit 和 na.exclude,我的线性模型的摘要打印完全相同。但是,如果我查看残差,na.exclude 会在有 NA 的情况下为我提供 NA,并且它会为我提供 na.omit 的没有 NA 的残差列表。

residuals.lm(lm_1_exclude)

 1            2            3            4            5            6            7            8            
-0.052657302 -0.093045084 -0.329509087  NA -0.152040821 -0.321757328 -0.322085368  0.072296134  

residuals.lm(lm_1_omit)

 1            2            3              5            6            7            8            
-0.052657302 -0.093045084 -0.329509087   -0.152040821 -0.321757328 -0.322085368  0.072296134  

我现在想了解,在线性模型中应该首选哪个选项以及这如何影响我的统计数据。不幸的是,我只能找到解释这些不同选项存在的教程,但没有关于选择什么的建议。https://stats.idre.ucla.edu/r/faq/how-does-r-handle-missing-values/

1个回答

na.excludeover的唯一好处na.omit是前者会保留数据中原来的行数。当您需要保留数据集的原始大小时,这可能很有用 - 例如,当您想要将预测值与原始值进行比较时,它很有用。最终,您将获得更少的行,因此na.omit您将无法轻松进行比较。