6

我用 lme4 运行一个简单的 GLMM ...

model1  <- glmer.nb(S ~ Days*Grazing*Biome + (Days|Site), data=mydata, verbose=T, control=ctrl)

...并从 bobyqa 运行到收敛代码 1:“bobyqa -- 超出函数评估的最大数量”。所以我查找了stackoverflow,发现了这个有趣的线程。

我彻底检查了我的控制对象,现在看起来像这样:

ctrl = glmerControl(optimizer = "bobyqa",
                    #restart_edge=T,
                    boundary.tol = 1e-5,
                    calc.derivs=TRUE,
                    use.last.params=FALSE,
                    sparseX = FALSE,
                    tolPwrss=1e-7,
                    compDev=TRUE,
                    nAGQ0initStep=TRUE, 
                    ## optimizer args
                    optCtrl = list(maxfun = 1e5))

但我仍然得到同样的错误。然后我按照另一个链接的建议,据说

  • 您可以使用 control=glmerControl(optCtrl=list(maxfun=1e5)) 来调整函数评估的最大数量。 查看
  • 如果@optinfo$feval 会告诉您实际使用了多少函数评估。待定

所以我做了 model1@optinfo$feval 它说... 172

我必须承认我期待别的东西,所以我尝试了从 1e3 到 1e8 的所有方法,但我仍然卡住了。

我的 lme4 版本是 1.1-10;我使用的是 Win10 64bit R3.1.3(也许我应该升级我的 R?)

任何(!)帮助或评论都非常感谢!干杯

4

0 回答 0