防止NA用于lm regresion

Rob*_*ick 6 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)
Run Code Online (Sandbox Code Playgroud)

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

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

cor(X, Y, use = "pairwise.complete.obs")
Run Code Online (Sandbox Code Playgroud)

NPE*_*NPE 9

出厂默认值lm是忽略包含NA值的观测值.由于可以使用全局选项覆盖它,因此您可能希望显式设置na.actionna.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)
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

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

  • 您可能想澄清最后一句话背后的原因:只有两个向量相关,`pairwise.complete.obs`和`complete.obs`是等价的.随着更多的向量(即获取矩阵中所有列的相关性),它们将不会...... (3认同)