尝试生成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):该对象类尚未定义函数
谁能看到为什么失败?
答案 0 :(得分:2)
问题是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
答案 1 :(得分:1)
为记录起见,此版本在2.2-1版中有效:NEWS file建议在2.2-0版中已修复。
版本2.2-0(2019年2月25日)
...
为'glm.nb'类的对象添加了方法