增加lmer新版本的迭代次数?

Sol*_*Sol 12 iteration r lme4 lmer

我刚刚将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
Run Code Online (Sandbox Code Playgroud)

所以,我想尝试增加迭代次数,看看能不能解决这个问题.(我必须说我不知道​​导致警告的是什么,因为消息的第一部分听起来有些不透明).无论如何,我在文档中读到现在我应该使用lmerControl(),但我无法实现它.有人能给我一个具体的例子说明你是如何做到具体的吗?(帮助文件没有帮助).这是我的模型:

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

非常感谢!

42-*_*42- 18

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) ) )
Run Code Online (Sandbox Code Playgroud)

这并不能保证达到收敛.(我的经验是默认最大值通常就足够了.)您的数据很可能不足以支持模型的复杂性,或者模型的设计不正确.

  • 注意:对于广义线性混合模型(glmer,glmer.nb),请使用glmerControl (10认同)
  • 对不起,它需要传递给`lmerControl`. (2认同)