![](/img/trans.png)
[英]Different outputs using ggpredict for glmer and glmmTMB model
[英]fitting a GLMER model with glmmTMB
我正在尝试用 glmmTMB 拟合广义线性混合glmmTMB
summary(glmmTMB(cbind(SARA_ph58, 1)~ `Melk T`+VetT+EiwT+
`VET EIWIT ratio`+LactT+CelT+UrmT+vetg+eiwitg+lactg+
`DS opname`+`boluses per day`+`chewings per bolus`+
`rumination (min/d)`+ Activiteit + (1|experiment),
data = dataset1geenNA, family = binomial()))
当我运行此代码时,我得到一些 output 但也得到下一条警告消息:
1:in fitTMB(TMBStruc):Model收敛问题; 非正定 Hessian 矩阵。 见小插图('疑难解答')
2:在 sqrt(diag(vcov)) 中:产生了 NaN
有人知道如何解决这个问题吗?
Output:
Family: binomial ( logit )
Formula: cbind(SARA_ph58, 1) ~ `Melk T` + VetT + EiwT + `VET EIWIT ratio` + LactT + CelT + UrmT + vetg + eiwitg + lactg + `DS opname` +
`boluses per day` + `chewings per bolus` + `rumination (min/d)` + Activiteit + (1 | experiment)
Data: dataset1geenNA
AIC BIC logLik deviance df.resid
NA NA NA NA 79
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
experiment (Intercept) 5.138e-08 0.0002267
Number of obs: 96, groups: experiment, 3
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.595e+01 1.605e+01 -0.994 0.3202
`Melk T` -2.560e-01 1.330e-01 -1.925 0.0542 .
VetT -7.499e+00 3.166e+00 -2.369 0.0178 *
EiwT 8.353e+00 4.885e+00 1.710 0.0872 .
`VET EIWIT ratio` 2.100e+01 1.545e+01 1.359 0.1742
LactT -2.086e+00 8.571e-01 -2.434 0.0149 *
CelT -1.430e-04 6.939e-04 -0.206 0.8367
UrmT 1.300e-02 3.978e-02 0.327 0.7438
vetg 1.166e-03 NA NA NA
eiwitg -2.596e-03 5.180e-03 -0.501 0.6162
lactg 7.862e-03 NA NA NA
`DS opname` -1.882e-02 8.416e-02 -0.224 0.8231
`boluses per day` -3.200e-02 1.226e-01 -0.261 0.7940
`chewings per bolus` 1.758e-02 6.688e-02 0.263 0.7927
`rumination (min/d)` -1.468e-03 3.145e-03 -0.467 0.6408
Activiteit 4.265e-03 4.625e-03 0.922 0.3564
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
这里有很多问题。
最接近的问题是你有一个(接近)奇异拟合: glmmTMB
试图使方差为零(5.138e-08 尽可能接近)。 因为它符合对数方差(实际上是对数标准差)尺度,这意味着它试图将 go 变为 -∞,这使得参数的协方差矩阵无法估计。
发生这种情况的主要原因是您的随机效应( experiment
)中的组数非常少(3)。
这些是混合模型极其常见的问题:您可以从阅读?lme4::isSingular
和GLMM FAQ 的相关部分开始。
最简单的解决方案是将experiment
视为固定效果,在这种情况下,您将不再拥有混合 model 并且您可以返回普通glm()
。
代码的另一个稍微令人担忧的方面是响应变量cbind(SARA_ph58, 1)
。 如果SARA_ph58
是二进制(0/1) 变量,您可以只使用SARA_ph58
。 如果你在做的时候传递一个双列矩阵,第一列被解释为成功的次数,第二列被解释为失败的次数; 看起来您可能一直在尝试指定每个观察的试验总数为 1(同样,如果是这种情况,您可以只使用SARA_ph58
作为响应)。
最后一点是lme4::glmer
比glmmTMB
更能容忍奇异拟合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.