我刚刚将lme4更新到1.0-4版本,当我运行lmer()时,我以前混合的混合效果模型现在显示以下警告:

Warning message:
In (function (fn, par, lower = rep.int(-Inf, n), upper = rep.int(Inf,  :
  failure to converge in 10000 evaluations


因此,我想尝试增加迭代次数以查看是否可以解决此问题。 (我必须说我不知道​​是什么原因导致了警告,因为消息的第一部分听起来有些模糊。)无论如何,我都阅读了文档,现在我应该使用lmerControl(),但是我无法实现它。有人可以给我一个具体的例子,说明您将如何做到具体吗? (帮助文件无济于事)。这是我的模型:

m <- lmer(RT ~ Factor1*Factor2 + (0+Factor1+Factor2|Subject) + (1|Subject)  + (1|Item) + (0+Factor1+Factor2|Item), data= data)


非常感谢!

最佳答案

lmerControl功能允许您选择一个优化器并将控制参数传递给它。控制迭代次数或评估次数的参数因函数而异(如lmerControl的帮助页面中所述)。默认优化器为“ Nelder_Mead”,对于该优化器选择,可以通过在“ optCtrl”参数列表中指定“ maxfun”来更改最大评估数:

m <- lmer(RT ~ Factor1*Factor2 + (0+Factor1+Factor2|Subject) +
               (1|Subject)  + (1|Item) + (0+Factor1+Factor2|Item),
          data= data, control=lmerControl(optCtrl=list(maxfun=20000) ) )


这不能保证会达到收敛。 (我的经验是,默认最大值通常就足够了。)您的数据很可能不足以支持模型的复杂性,或者为研究设计错误地构建了模型。

并感谢@NBrouwer的注释,他将此建议扩展为glmerglmControl

关于r - 增加新版本的lmer的迭代次数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19478686/

10-12 18:57