Невозможно предсказать в ordinal :: pregnat.clm (): не могу найти функцию - PullRequest
1 голос
/ 03 мая 2020

У меня есть порядковая модель, созданная с помощью clmm (), и я пытаюсь предсказать регрессию логистики c. Функция предиката () не работает, поэтому я пытаюсь прогнозировать, но я получаю эту ошибку:

Error in predict.clm() : could not find function "predict.clm"

Любая помощь будет принята с благодарностью. Пакет обновлен, R и Rstudio обновлены, и пакет загружен в Rstudio. Я новичок в R и не уверен, как бы я go исправил это или иначе go о прогнозировании переменных для моей модели.

Мне интересно, стоит ли мне go поменять мою модель на использование функции polr () в пакете MASS, так как предикат () не работает для функции clmm (), которой в настоящее время пользуется моя модель. Заранее спасибо.

ETA: пример, набор данных поведения

Proximity <- c(1, 1, 2, 1, 3, 2, 1, 1, 2, 1) #ordinal variable
Treatment <- c("control", "control", "control", "familiar", "familiar", "familiar", "familiar", "unfamiliar", "unfamiliar", "unfamiliar") #categorical
Event <- c("L", "L", "L", "L", "L", "I", "I", "I", "I", "I") #categorical
Temperature <- c(70, 72, 72, 69, 79, 60, 63, 70, 74, 65) #numerical

#I also have nested random effects but have not included them for simplicity

Prox <- data.frame(Proximity, Treatment, Event, Temperature)

pro.1 <- clmm(Proximity ~ Treatment + Event + Temperature)  

predict.clm(pro.1, Prox) #this is where I get the error

1 Ответ

1 голос
/ 03 мая 2020

Обычно достаточно набрать predict. Это должно автоматически вызвать метод predict.clm.

Однако ?ordinal::clmm сообщает:

Это [...] улучшено внедрение CLMM. Старая реализация доступна в clmm2. Некоторые функции еще не доступны в clmm [...].

Я полагаю, это либо не реализовано, либо является ошибкой. Вы можете попробовать clmm2 в качестве альтернативы. Пример:

library(ordinal)

## clmm -- doesn't work
fmm1 <- clmm(rating ~ temp + contact + (1|judge), data = wine)
predict(fmm1)
# Error in UseMethod("predict") : 
#   no applicable method for 'predict' applied to an object of class "clmm"
ordinal:::predict.clm(fmm1)
# Error in get_clmDesign(fullmf = object, terms.list = terms.list, contrasts = contrasts) : 
#   all(sapply(terms.list, inherits, "terms")) is not TRUE

## clmm2 -- works!
fmm2 <- clmm2(rating ~ temp + contact, random=judge, data = wine)   
predict(fmm2)
# [1] 0.41952700 0.47195487 0.55026797 ...
ordinal:::predict.clm2(fmm2)
# [1] 0.41952700 0.47195487 0.55026797 ...

stopifnot(all.equal((fmm1$coefficients), fmm2$coefficients[-7], tol=10e-6))

(PS: имеется в виду ordinal версия 2019.12-10 и версия R 4.0.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...