【问题标题】:Prevent NA from being used in a lm regresion防止 NA 用于 lm 回归
【发布时间】:2012-01-16 21:28:25
【问题描述】:

我有一个包含未来收益的向量 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")

【问题讨论】:

    标签: r lm


    【解决方案1】:

    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') 也会产生预期的结果。

    【讨论】:

    • 您可能想澄清最后一句话背后的原因:只有两个向量相关,pairwise.complete.obscomplete.obs 是等价的。有了更多的向量(即获取矩阵中所有列的相关性),它们就不会是......
    猜你喜欢
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 2012-01-17
    • 2013-05-31
    • 2015-11-20
    • 1970-01-01
    相关资源
    最近更新 更多