Функция не определена при вызове aictab
Я получаю сообщение об ошибке при попытке создать aictab
Таблица
КОД
library(MASS)
library(AICcmodavg)
set.seed(456)
d <- data.frame(ID = 1:20,
Ct = c(sample(x = 1:50, size = 12, replace = T), rep(x = 0, length.out = 8)),
V = as.factor(rep(x = c("Dry", "Wet"), each = 2)),
S = as.factor(rep(x = c("Sand", "Clay"), each = 2)))
m1 <- glm.nb(Ct ~ 1, data = d)
m2 <- glm.nb(Ct ~ V, data = d)
m3 <- glm.nb(Ct ~ S, data = d)
all_ms <- list(m1, m2, m3)
names(all_ms) <- c("null", "type", "soil")
aic_tb <- aictab(cand.set = all_ms, second.ord = TRUE)
ВЫХОД
Ошибка в aictab.default(cand.set = all_ms, second.ord = TRUE): функция еще не определена для этого класса объектов
Кто-нибудь может понять, почему это не удается?
1 ответ
Решение
Проблема в том, что aictab()
кажется не в состоянии обрабатывать объекты класса negbin
(результат от glm.nb()
).
Простой обходной путь заключается в использовании glm.convert()
который изменяет ваш вывод, чтобы выглядеть как один из glm()
с отрицательным биномиальным семейством:
all_ms_glm <- lapply(all_ms, glm.convert)
aictab(cand.set = all_ms_glm, second.ord = TRUE)
# Model selection based on AICc:
#
# K AICc Delta_AICc AICcWt Cum.Wt LL
# null 2 396.34 0.00 0.35 0.35 -195.82
# soil 3 396.46 0.13 0.33 0.67 -194.48
# type 3 396.46 0.13 0.33 1.00 -194.48
Для записи это работает в версии 2.2-1: файл NEWS предполагает, что это было исправлено в версии 2.2-0.
пересмотр 2.2-0 (25 февраля 2019 года)
...
добавлены методы для объектов класса 'glm.nb'