1

我正在尝试为我的一些模型获取 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)
4

2 回答 2

1

您的模型没有可能性 ( logLik(m)is NA),因此无法从中计算任何基于可能性的标准。这可能是由于零通货膨胀模型的样本量小(没有ziformula给出的相同模型logLik)。

另请注意,AICc(我假设它是MuMIn::AICc)没有 arguments tracerank也没有REML,因此错误。我相信您将命令与dredge.

于 2020-05-16T16:44:55.627 回答
0

我们可以手动提取它(见):

summary(m)$AICtab
     AIC      BIC   logLik deviance df.resid 
      NA       NA       NA       NA        5 

直接获取AIC:

summary(m)$AICtab[[1]]
[1] NA

要获得 AICc(在撰写本文时,我在学习中尚未遇到此标准):

MuMIn::AICc(m)
[1] NA

然而,它与上面的输出相同。

笔记

  • 似乎开发人员没有AIC为模型实现方法,glmmTMB因此使用AIC失败。

  • 由于数据不足,上述 AIC 可能为 NA。这个答案只是为了展示如何手动提取 AIC。来自以下文档AICc

计算一个或多个拟合模型对象的二阶 Akaike 信息准则(AICc,AIC 用于小样本)。

于 2020-05-15T16:43:14.530 回答