为多个负二项式glm模型获取AICc

时间:2017-09-28 02:18:43

标签: r glm

我一直在运行这个功能" aictab"在R中列出六个候选GLM模型(九个不同响应变量九次)。我的响应变量分布为Gamma或负二项式。 (我使用负二项式错误结构,因为我有计数数据过度分散。)aictab函数工作得很好,并在我的模型上给出了一个带有GIC错误结构的AICc值,模型权重等表,但是当我尝试在具有负二项式误差结构的模型上运行该函数时,我意识到aictab()不支持这种类型的错误结构,并且我无法获得AICc或模型权重。

我的问题是:我可以使用哪些其他函数或代码来获取负二项GLM模型的aictab函数的等效输出?代码/错误的示例如下。

setwd('C:/Users/Laura/Desktop/')
library(ggplot2)
library(Hmisc)
library(psych)
library(multcomp)
library(gridExtra)
library(lmerTest)
library(plotrix)
library(stats)
library(stats4)
library(gplots)
library(sciplot)
library(lme4)
library(lmerTest)
library(AICcmodavg)
library(glmulti)

##########################################
indi<-read.csv("trait_data_all_years.csv", header=T)
indi$year<-as.factor(indi$year)
str(indi)
summary(indi$tot.sil)
hist(indi$tot.sil, breaks=20)
indi<-subset(indi, tot.sil!="NA")
summary(indi$tot.sil)

year_site<-glm.nb(tot.sil~year + site, data=indi) 
year_site_hab<-glm.nb(tot.sil~year + site + hab, data=indi)
yearhabinteract_plus_site<-glm.nb(tot.sil~year*hab + site, data=indi)
yearsiteinteract_plus_hab<-glm.nb(tot.sil~year*site + hab, data=indi)
habsiteinteract_plus_year<-glm.nb(tot.sil~year + site*hab, data=indi)
threewayinteract<-glm.nb(tot.sil~site*hab*year, data=indi)

model.set<- list(year_site, year_site_hab, yearhabinteract_plus_site, yearsiteinteract_plus_hab, habsiteinteract_plus_year, threewayinteract)

aictab (model.set)

运行aictab(model.set)时出现此错误

aictab (model.set)
Error in aictab.default(model.set) : 
Function not yet defined for this object class

1 个答案:

答案 0 :(得分:0)

我知道没有名为aictab.default()的函数,也没有在程序中定义这样的函数。

您应该可以使用类似

的内容
state

或者,year_site $ aic将返回year_site二项GLM的AIC。您可以使用其他模型执行相同的操作来提取单个AIC。