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

Posted

技术标签:

【中文标题】增加新版本 lmer 的迭代次数?【英文标题】:increase iterations for new version of lmer? 【发布时间】:2013-10-29 00:15:06 【问题描述】:

我刚刚将 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)

非常感谢!

【问题讨论】:

不是错误信息。这是一个警告。 @DWin:好的,我编辑了 【参考方案1】:

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 的说明。

【讨论】:

谢谢!我试过了,我收到这条消息:警告消息:在 checkArgs("lmer", optCtrl = list(maxfun = 20000)) : extra argument(s) 'optCtrl' disregarded 抱歉,需要传递给lmerControl 注意:对于广义线性混合模型(glmer、glmer.nb),请使用 glmerControl

以上是关于增加新版本 lmer 的迭代次数?的主要内容,如果未能解决你的问题,请参考以下文章

Maltego发布新版本4.2.18

KooTeam新版本发布,增加 Mysql 数据库支持

开源框架mybatis-enhance-actable.1.1.0.RELEASE新版本迭代

开源框架mybatis-enhance-actable.1.1.0.RELEASE新版本迭代

Python冷知识:如何找出新版本增加或删除了哪些标准库?

Python冷知识:如何找出新版本增加或删除了哪些标准库?