Я хочу использовать 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
, как во 2-м и 4-м случаях. Я пробовал следующее, с тем же результатом:
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
Как я могу заставить модель делать прогнозы, даже если отсутствуют некоторые данные?