R 使用aictab比较负二项模型(glm.nb)时获取错误消息

R 使用aictab比较负二项模型(glm.nb)时获取错误消息,r,R,我有一个关于使用AICc值比较昆虫丰度数据的负二项模型的问题,我得到的错误消息是 "Error in aictab.default(cand.set = model15LT_T, second.ord = T, sort = T, : Function not yet defined for this object class” 这是我的密码: model15LT_T = list() model15LT_T[[1]] = glm.nb(TotalN ~ 1+offset(log(Dat

我有一个关于使用AICc值比较昆虫丰度数据的负二项模型的问题,我得到的错误消息是

"Error in aictab.default(cand.set = model15LT_T, second.ord = T, sort = T,  : 
 Function not yet defined for this object class”
这是我的密码:

model15LT_T = list()
model15LT_T[[1]] = glm.nb(TotalN ~ 1+offset(log(Dates)), data=DAT)
model15LT_T[[2]] = glm.nb(TotalN ~ PC1_0.5+offset(log(Dates)), data=DAT)
model15LT_T[[3]] = glm.nb(TotalN ~ PC2_0.5+offset(log(Dates)), data=DAT)
model15LT_T[[4]] = glm.nb(TotalN ~ PC1_0.5 + PC2_0.5+offset(log(Dates)), data=DAT)

aictab(cand.set = model15LT_T, second.ord = T, sort = T, modnames = c("TotalN.1", 
                                                                    "TotalN.pc1.0.5", 
                                                                    "TotalN.pc2.0.5", 
                                                                    "TotalN.pc1+pc2.0.5"))
但是,当我尝试在模型中指定族而不是像下面那样使用glm.nb时,我复制并粘贴了所有代码,只是将glm.nb更改为glm family=negative.binomial theta=1,然后错误消息消失了

model15LT_T = list()
model15LT_T[[1]] = glm(TotalN ~ 1+offset(log(Dates)), family=negative.binomial (theta=1), data=DAT)
model15LT_T[[2]] = glm(TotalN ~ PC1_0.5+offset(log(Dates)), family=negative.binomial (theta=1), data=DAT)
model15LT_T[[3]] = glm(TotalN ~ PC2_0.5+offset(log(Dates)),family=negative.binomial (theta=1), data=DAT)
model15LT_T[[4]] = glm(TotalN ~ PC1_0.5 + PC2_0.5+offset(log(Dates)), family=negative.binomial (theta=1),data=DAT)

aictab(cand.set = model15LT_T, second.ord = T, sort = T, modnames = c("Total.1",
                                                                                                                    "Total.PC1",
                                                                                                                    "Total.PC2",
                                                                                                                    "Total.PC1+PC2"))
我的问题是:

1这是否意味着我无法使用glm.nb让aictab工作


2如果我必须在glmTotalN~中指定θ值,family=negative.binominal,有没有更好的方法来知道放什么值

1似乎是这样。您可以使用glm.nb返回的对象中的twologlik插槽,轻松手动计算AIC

aic1 = 2*(nrow(model15LT_T[[1]]$coef)+1)-model15LT_T[[1]]$twologlik
请注意,nrowmodel15LT_T[[1]]$coef+1=2,因为您估计了1个回归参数,即截距加上过度分散

2如果你已经知道θ,那么你可以用这种方式指定它,但在我看来,你最好估计它,除非你有很好的理由把它定为1。记住θ是负二项式的过度分散参数。这是一个讨厌的参数,需要估计对数线性回归的平均值,但您不想对其进行推断