r语言 - 具有零膨胀数据的混合效应模型 - 从包中使用 zeroinfl() 'pscl'错误消息



我对"pscl"包中的函数zeroinfl()有问题。以下是我的情况概述:

我试图找出地块中的非本地茎密度是否受到该地块焦点物种的影响。我使用的是混合效应模型,随机效应是站点(我在 6 个不同的站点收集了数据(。这是使用"lme4"包中的glmer()函数的混合模型的样子:

nonstem.model <- glmer(nonstem ~ focalspecies + (1|site), family = "poisson", data = data, na.action=na.omit)

问题是我的数据是零膨胀的,这意味着有很多地块没有非本地物种存在。所以我尝试使用"pscl"包中的zeroinfl()函数。

nonstem.ZIP = zeroinfl(nonstem ~ focalspecies + (1|site), dist="poisson", link = "logit", data = data)

但是我收到了一条错误消息:

contrasts<-中的错误 (*tmp*, 值 = contr.funs[1 + isOF[nn]]( :
对比度只能应用于具有 2 个或更多水平的因子 另外:警告消息:在操作因子(1,站点(中:"|"没有意义 对于因素

所以我收集到我在这里不能有随机效果,所以我把它改成了固定效果。

nonstem.ZIP = zeroinfl(nonstem ~ focalspecies + site, dist="poisson", link = "logit", data = data)

但是,现在我收到此错误消息:

solve.default(as.matrix(fit$hessian(( 中的错误:系统 is 计算单数:倒数条件数 = 4.70937E-36

如果我将分布从"泊松"更改为"negbin",则会出现类似的错误消息:

solve.default(as.matrix(fit$hessian(( 中的错误:系统 is 计算单数:倒数条件数 = 2.92265E-19

有谁知道这个错误消息是什么意思?或者,如果我可以使用不同的包/功能?任何帮助都非常感谢。

关于您的评论,您可以使用base R的stats::anova来比较两个模型。

下面是一个可重现的示例,使用来自glmmTMBSalamanders示例数据

library(glmmTMB);
fit1 = glmmTMB(
count ~ spp * mined + (1|site),
zi = ~ spp * mined,
data = Salamanders,
family = poisson);
fit2 = glmmTMB(
count ~ spp + mined + (1|site),
zi = ~ spp + mined,
data = Salamanders,
family = poisson);
anova(fit1, fit2)
#Data: Salamanders
#Models:
#fit2: count ~ spp + mined + (1 | site), zi=~spp + mined, disp=~1
#fit1: count ~ spp * mined + (1 | site), zi=~spp * mined, disp=~1
#     Df    AIC    BIC  logLik deviance  Chisq Chi Df Pr(>Chisq)
#fit2 17 1785.5 1861.4 -875.75   1751.5
#fit1 29 1778.1 1907.7 -860.04   1720.1 31.405     12   0.001708 **
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

应贷方的信用:示例从此处调整。

相关内容

  • 没有找到相关文章

最新更新