基于R中的代理插值缺失值

时间:2014-09-26 01:57:13

标签: r

假设您有一个要测量的值的代理。代理拥有的数据多于您的衡量标准。在这种情况下,您可能希望根据代理插入度量。例如,

set.seed(0)  ## so we can share the example
tv <- round(rnorm(10),3)
df <- data.frame( kept=round(tv,1), proxy=tv )
df$kept[3] <- NA; df$proxy[6] <- NA
t(df)
        [,1]   [,2] [,3]  [,4]  [,5] [,6]   [,7]   [,8]   [,9] [,10]
 kept  1.300 -0.300   NA 1.300 0.400 -1.5 -0.900 -0.300  0.000 2.400
 proxy 1.263 -0.326 1.33 1.272 0.415   NA -0.929 -0.295 -0.006 2.405

计划是将第三次观察的已知代理用于&#34;补丁&#34;变量。

我们首先运行一个回归来理解我们如何使用我们的代理来进行sub.na.action = na.exclude确保我们在残差和拟合变量上保持10的长度。

 r <- lm( kept ~ proxy, na.action=na.exclude )
 coef(r)
 (Intercept)       proxy 
 -0.00009099  1.00054561 

解决方案并不明显,因为预测函数会为缺失的X变量返回NA。

predict(r)
      1       2       3       4       5       6       7       8       9      10 
 1.3338 -1.2663      NA  0.3859 -0.9228      NA -1.7789  0.9991  0.7733  0.2960 

解决方案在答案文章后面。

1 个答案:

答案 0 :(得分:1)

这是拼图解决方案

predict(r, newdata= df)
        1         2         3         4         5         6         7         8         9        10 
 1.263598 -0.326269  1.330635  1.272603  0.415135        NA -0.929598 -0.295252 -0.006094  2.406221 

将newdata参数用于预测函数。这可以方便地选择正确的变量名称。