即使使用NA(predict()),如何进行预测?

时间:2019-01-18 17:38:31

标签: linear-regression na predict

我想根据以下代码将predict()polr()模型一起使用来预测变量z。首先是df,用于训练模型和后续的test数据。

df <- data.frame(x=c(1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2),
                 y=c(32, 67, 12, 89, 45, 78, 43, 47, 14, 67, 16, 36, 25, 23, 56, 26, 35, 79, 13, 44),
                 z=as.factor(c(1, 2, 3, 2, 1, 2, 3, 2, 1, 2, 3, 2, 3, 2, 1, 2, 1, 2, 1, 2)))
test <- data.frame(x=c(1, 2, 1, 1, 2, 1, 2, 2, 1, 1),
                   y=c(34, NA, 78, NA, 89, 17, 27, 83, 23, 48),
                   z=c(1, 2, 3, 1, 2, 3, 1, 2, 3, 1))

这是polr()模型:

mod <- polr(z ~ x + y, data = df, Hess = TRUE)

这是predict()函数及其结果:

predict(mod, newdata = test)
[1] 2    <NA> 2    <NA> 2    2    2    2    2    2 

我的问题是,即使在存在NAs的情况下,我也希望模型做出预测,如第二和第四种情况一样。我尝试了以下结果,结果相同:

predict(mod, newdata = test, na.action = "na.exclude")
predict(mod, newdata = test, na.action = "na.pass")
predict(mod, newdata = test, na.action = "na.omit")
predict(mod, newdata = test, na.rm=T)
[1] 2    <NA> 2    <NA> 2    2    2    2    2    2 

即使有一些缺失的数据,我如何才能使模型做出预测?

0 个答案:

没有答案