我已经使用glmmTMB运行了一系列广义线性混合模型,以便评估不同场所动物的行为差异。饱和模型涉及全部主要效果,一个随机效果(随机截距),一个嵌套效果和两个连续预测变量(请参见下面的代码)。我想评估模型中主要作用的重要性(三个主要作用代表两个主要作用及其交互作用:行为,设施,行为:设施),并在基础包中使用anova()来相互比较模型但请继续获取似乎没有意义的卡方值和自由度。当它们自己运行时,没有一个模型会给出错误,但是使用anova()进行比较是没有意义的。我不明白为什么或应该怎么做才能解决这个问题。
鉴于模型是使用R中的glmmTMB包运行的,因此我无法使用car包中的Anova()函数,因为不支持glmmTMB模型对象,并且这样做会生成错误消息。我也尝试过使用glmmADMB软件包,但发现它的运行速度要慢得多(某些模型实际上要花费数小时才能运行),并且模型比较也没有意义。
我的代码:
rm()
detach()
library(glmmTMB)
dataset<-read.csv("Dur18Bletters.csv", header=T)
attach(dataset)
names(dataset)
mod1<-glmmTMB(Count~Facility+Beh+Facility:Beh+(1|Sex)+(1|ID/Day)+Age+Attendance,family=nbinom2)
mod2<-glmmTMB(Count~Facility+Beh+(1|Sex)+(1|ID/Day)+Age+Attendance,family=nbinom2)
mod3<-glmmTMB(Count~Facility+Facility:Beh+(1|Sex)+(1|ID/Day)+Age+Attendance,family=nbinom2)
mod4<-glmmTMB(Count~Beh+Facility:Beh+(1|Sex)+(1|ID/Day)+Age+Attendance,family=nbinom2)
anova(mod1,mod2,test="LRT")
anova(mod1,mod3,test="LRT")
anova(mod1,mod4,test="LRT")
三个偏差测试的输出:
Data: NULL
Models:
mod2: Count ~ Facility + Beh + (1 | Sex) + (1 | ID/Day) + Age + People, zi=~0, disp=~1
mod1: Count ~ Facility + Beh + Facility:Beh + (1 | Sex) + (1 | ID/Day) + , zi=~0, disp=~1
mod1: Age + People, zi=~0, disp=~1
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
mod2 26 19672 19823 -9810.0 19620
mod1 60 19447 19795 -9663.6 19327 292.69 34 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> anova(mod1,mod3,test="LRT")
Data: NULL
Models:
mod1: Count ~ Facility + Beh + Facility:Beh + (1 | Sex) + (1 | ID/Day) + , zi=~0, disp=~1
mod1: Age + People, zi=~0, disp=~1
mod3: Count ~ Facility + Facility:Beh + (1 | Sex) + (1 | ID/Day) + , zi=~0, disp=~1
mod3: Age + People, zi=~0, disp=~1
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
mod1 60 19447 19795 -9663.6 19327
mod3 60 19447 19795 -9663.6 19327 0 0 1
> anova(mod1,mod4,test="LRT")
Data: NULL
Models:
mod1: Count ~ Facility + Beh + Facility:Beh + (1 | Sex) + (1 | ID/Day) + , zi=~0, disp=~1
mod1: Age + People, zi=~0, disp=~1
mod4: Count ~ Beh + Facility:Beh + (1 | Sex) + (1 | ID/Day) + Age + , zi=~0, disp=~1
mod4: People, zi=~0, disp=~1
Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
mod1 60 19447 19795 -9663.6 19327
mod4 60 19447 19795 -9663.6 19327 0 0 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
当我检查第一个模型比较(即anova(mod1,mod2))时,输出看起来是合理且可信的。因此,我得出的结论是,两个模型之间的显着差异证明,在mod2中删除的主要影响对该模型做出了重大贡献。卡方值为0不可能生成<0.0001的p值。
我们将不胜感激!我并不是特别致力于这种估计主要效果的方法(这是我在浏览论坛时可以找到的唯一方法),因此,如果有人有我可以尝试的替代软件包/方法,那就太好了!我完全不知所措。