Я разработал модель путем множественного вменения с использованием mice
. Я хочу использовать эту модель для прогнозирования ответов на новые наблюдения (не содержащие недостающих данных), включая стандартные ошибки. Передача объекта модели, созданного в mice
, в predict
не работает
Простой пример с использованием встроенного набора данных nhanes
. Скажем, я хотел разработать модель логистической регрессии с формой age == 3 ~ bmi + hyp + chl
и использовать эту модель для прогнозирования, скажем, вероятности (age = 3 | bmi = 20, hyp = 2 и chl = 190)
library('mice')
imp<-mice(nhanes, seed = 1)
#create model on each imputed dataset
model <- with(imp, glm(age == 3 ~ bmi + hyp + chl, family = binomial))
#pool models into one
poolmodel <- pool(model)
#new data
newdata <- data.frame(bmi = 20, hyp = 2, chl = 190)
#attempt to predict response using predict() function
pred <- predict(object = model, newdata = newdata, type = 'link', se.fit = TRUE)
Ошибка в UseMethod (предсказать): нет применимого метода для "предсказать", примененного к объекту класса c ("мира", "матрица")
pred <- predict(object = poolmodel, newdata = newdata, type = 'link', se.fit = TRUE)
Ошибка в UseMethod (предсказать): нет применимого метода для "предсказать", примененного к объекту класса c ("mipo", "mira", "matrix")
Очевидно, было бы просто вычислить предсказанные отклики и ошибки вручную, используя объединенные коэффициенты и объединенную матрицу ковариаций. Однако реальная проблема намного шире, и модель опирается на несколько сплайнов и взаимодействий, что значительно усложняет вычисления. Я бы предпочел использовать существующие функции, которые могут сделать все это за меня.
Есть ли в R простое решение, которое будет выводить предсказанные ответы для любого заданного (объединенного) объекта модели и любого заданного набора новых наблюдений без необходимости вносить громоздкие изменения в код?