【发布时间】:2015-08-01 06:40:09
【问题描述】:
我在尝试使用包 lme4 版本 1/1-7 的 glmer 函数进行混合效应二项式回归时遇到了迭代问题。
当我使用代码运行模型时:
model <- glmer(Clinical.signs ~ cloacal +(1|Chicken_ID), family = binomial,
data = viral_load_9)
我收到警告:
错误:pwrssUpdate 在(最大)迭代中没有收敛
当我遵循here给出的建议时
使用代码:
model <- glmer(Clinical.signs ~ cloacal +(1|Chicken_ID), family = binomial,
data = viral_load_9,
control=glmerControl(optimizer="bobyqa",
optCtrl = list(maxfun = 100000)))
我仍然有完全相同的错误消息。
任何关于我的代码可能有问题的建议都将不胜感激。
---------------------------------------------- ------------------
遵循 aosmith 的建议(感谢您的建议!)我将数据和代码包括在内,以便其他人可以复制我得到的结果。请注意,代码对变量“oral”运行良好并生成了“model_1”,但是当我使用变量“cloacal”运行它时,我收到了如上所述的错误消息。
Chicken_ID <- c(44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,55,55)
oral <- c(-0.4827578,-0.1845839,-1.3772797,-0.7809318,-0.4827578,1.6044598,0.1135901,0.411764,-0.1845839,1.6044598,-0.1845839,1.6044598,-1.6754536,0.709938,-1.0791057,0.709938,0.1135901,1.0081119,0.411764,-1.6754536,-0.1845839)
cloacal <- c(-0.9833258,0.450691,-1.1267275,0.7374944,-1.1267275,1.0242977,-1.5569325,1.0242977,0.3072893,1.0242977,-0.1229157,1.1676994,-1.5569325,0.5940927,0.450691,0.3072893,-1.1267275,0.7374944,0.1638876,-1.5569325,1.1676994)
clinical.signs <- c("YES","YES","NO","YES","NO","YES","NO","YES","YES","YES","YES","YES","NO","YES","YES","YES","NO","YES","YES","NO","YES")
clinical.signs <- factor(clinical.signs)
viral_load <- data.frame(Chicken_ID, oral, cloacal, clinical.signs)
library(lme4)
model_1 <- glmer(clinical.signs ~ oral +(1|Chicken_ID),
family = binomial, data = viral_load)
summary(model_1)
model_2 <- glmer(clinical.signs ~ cloacal +(1|Chicken_ID),
family = binomial, data = viral_load)
【问题讨论】:
-
提供可重现的示例会更容易,但如果模型合理且更改优化器无济于事(我经常以
nloptwrap开头,但您有很多选择),您可以尝试更改glmerControl(for an example see this) 中的 pwrss 容差。如果这有助于事情收敛,您可能会看到证据,例如完全/准完全分离问题。 -
感谢有关“pwrss”选项的建议。我重新运行了模型,如下所示:
model <- glmer(Clinical.signs ~ cloacal +(1|Chicken_ID), family = binomial, data = viral_load_9, control=glmerControl(optimizer="bobyqa", tolPwrss=1e-3,optCtrl = list(maxfun = 100000)))- 但错误消息保持不变 -
嗯,您可以考虑添加您的数据集或其他重现问题的示例。
-
你已经完全分离了。查看每个组 (
by(viral_load[3], viral_load$clinical.signs, summary)) 的cloacal的摘要 - 两组之间的值没有重叠。如果暂时忽略随机效应,用glm拟合模型,也能很快看出问题。 -
是的,您对完全分离问题是正确的。做得好!这不是我以前遇到过的,但我在link 找到了一个很好的解释。我需要做更多的研究来应用一些建议的解决方案来为我的困难数据集建模,但我认为这现在结束了我最初的问题。再次感谢您的帮助。