我希望 vglm 预测保留测试数据中不完整案例的 NA 值。到目前为止还没有。
library(VGAM)
train.df <- data.frame(x = c(NA, 1:6),
y = c(4, 2, 1, 5, 0, 2, 1))
m.lm <- vglm(family = tobit(), data = train.df,
formula = y ~ x, na.action = na.exclude)
predict(m.lm) # as desired, yields 7 predictions, first is NA
test.df <- data.frame(x = c(NA, (1:6 - .5)))
predict(m.lm, newdata = test.df, na.action = na.exclude)
最后一行只生成 6 个预测,x = NA 的行没有。我的目标是让它以正确的顺序生成 7 个预测,其中一个是 NA。
Stack Exchange 上最接近相关的问题似乎是 glm with missing values。但我并不是要估算缺失的 x 值。我希望缺失 x 值的预测为 NA。
我试过的:(1)na.action = na.omit 旨在不预测 NA,并且具有预期的效果。为了咧嘴一笑,我也尝试了 na.pass。 (2) NA值分散在真实数据中。为了创建填充向量,我一直在使用笨拙的合并。我从 test.df 中提取 complete.cases,附加预测,将提取合并回 test.df,然后将预测列拉回。即使我不能直接预测 NA,有没有更简单的方法?