【发布时间】:2020-05-15 16:00:15
【问题描述】:
我正在尝试为我的一些模型获取 AICc 表,这些模型是使用包 glmmTMB 构建的。该模型给出了一个 logLik 值,但没有给出 AICc。当我将模型放入 AICc() 时:
a <- print(AICc(model, trace = TRUE,
rank = "AICc", REML = FALSE))
我收到此错误:
Error in UseMethod("logLik") :
no applicable method for 'logLik' applied to an object of class "logical"
我使用了 AICtab() 等其他函数并得到了同样的错误,所以我相信它在模型本身中。如果有人能够在这里解释此错误,请告诉我,谢谢。
编辑:
使用的最小数据集和模型:
ID <- c("A","B","C","A","B","C","A","B","C","A","B","C")
#random effect
Sesh <- c("A1","B1","C1","A2","B2","C2","A3","B3","C3","A4","B4","C4")
#nested random effect
Stim <- c("Old","New","Old","New","Old","New","Old","New","Old","New","Old","New")
Temp <- c(75, 76, 72, 80, 71, 65, 69, 60, 76, 80, 81, 60)
Total <- c(0,1,5,6,3,10,2,1,0,0,4,6)
z <- data.frame(ID, Sesh, Stim, Temp, Total)
m <- glmmTMB(
Total ~ Stim + Temp + (1|ID/Sesh),
ziformula = ~1,
data = z,
family = nbinom2)
【问题讨论】:
-
这可能很难调试。您能否添加一个您希望获得其
AIC的示例模型。也许使用非常小的数据集来实现可重复性? -
非常感谢您的回复。我刚刚添加了一个示例模型和数据集,希望对您有所帮助。
-
在阅读文档时,这似乎是一个数据问题。似乎 AICc 仅适用于较大的样本。然而,这是我第一次达到这个指标,所以我在统计上没有资格回答。我已经提供了相同的方法来提取它。
-
你确定这个
(1|ID/Sesh)。查看上面的示例,Sesh 嵌入在 ID 中。你只需要身份证。 Sesh 被过度指定(没有重复)