防止NA用于lm回归

时间:2011-12-09 15:50:55

标签: r lm

我有一个包含未来回报的向量Y,向量X包含当前回报。最后一个Y元素是NA,因为最后一个当前返回也是可用系列的最后一个。

X = { 0.1, 0.3, 0.2, 0.5 }
Y = { 0.3, 0.2, 0.5, NA }
Other = { 5500, 222, 523, 3677 }

lm(Y ~ X + Other)

我想确保回归中包含每个系列的最后一个元素。我阅读了na.action文档,但我不清楚这是否是默认行为。

对于cor(),这是从计算中排除X [4]和Y [4]的正确解决方案吗?

cor(X, Y, use = "pairwise.complete.obs")

1 个答案:

答案 0 :(得分:9)

lm的出厂默认设置是忽略包含NA值的观测值。由于可以使用全局选项覆盖此选项,因此您可能希望将na.action显式设置为na.omit

> summary(lm(Y ~ X + Other, na.action=na.omit))

Call:
lm(formula = Y ~ X + Other, na.action = na.omit)

[snip]

  (1 observation deleted due to missingness)
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

关于你的第二个问题cor(X,Y,use='pairwise.complete.obs')是正确的。由于只有两个变量,cor(X,Y,use='complete.obs')也会产生预期的结果。