R 增加lme4版本1.1-7的迭代次数

R 增加lme4版本1.1-7的迭代次数,r,lme4,R,Lme4,我在尝试使用软件包lme4version 1/1-7的glmer函数进行混合效应二项回归时遇到迭代问题 当我使用以下代码运行模型时: model <- glmer(Clinical.signs ~ cloacal +(1|Chicken_ID), family = binomial, data = viral_load_9) model <- glmer(Clinical.signs ~ cloacal +(1|Chicken_ID), family

我在尝试使用软件包
lme4
version 1/1-7的
glmer
函数进行混合效应二项回归时遇到迭代问题

当我使用以下代码运行模型时:

model <- glmer(Clinical.signs ~ cloacal +(1|Chicken_ID), family = binomial, 
               data = viral_load_9)
model <- glmer(Clinical.signs ~ cloacal +(1|Chicken_ID), family = binomial, 
               data = viral_load_9, 
               control=glmerControl(optimizer="bobyqa", 
                                    optCtrl = list(maxfun = 100000)))

model您的代码可能没有问题。看这个。
您可以采取一些措施来防止收敛失败:

  • 重缩放连续变量
  • 使用
    glmerControl()
  • 检查数据中的稀疏数据。如果在某些预测水平上没有足够的结果或观察,模型可能无法收敛
谢谢。。。这是一个非常有效的建议。事实上,当我第一次遇到收敛问题时,我怀疑这是一个数据问题,因此我对协变量进行了标准化,以“0”为中心。但是在重新运行模型之后,我收到了关于收敛问题的相同错误消息。因此,这让我觉得这是我的代码。。。或者lme4库有问题……使用一个可复制的示例会更容易,但如果模型合理且更改优化器没有帮助(我通常从
nloptwrap
开始,但您有很多选择),您可以尝试在
glmerControl
()中更改pwrss公差。如果这有助于实现融合,您可能会看到完全/准完全分离问题的证据。感谢您对“pwrss”选项的建议。我重新运行了如下模型:<代码>模型HMM,您可以考虑添加数据集或再现问题的另一个示例。查看每组的
泄殖腔
摘要(
by(病毒载量[3],病毒载量$clinical.signs,summary)
)-两组之间的值没有重叠。如果您暂时忽略随机效应并使用
glm
拟合模型,您也可以很快看到问题。是的,关于完全分离问题,您是正确的。做得好!这不是我以前遇到过的事情,但我在网站上找到了一个很好的解释。我需要做更多的研究,以应用一些建议的解决方案来建模我的困难数据集,但我认为这现在结束了我原来的问题。再次感谢您的帮助。
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)