控制lme4 1.0中的最大迭代次数.*

use*_*985 5 r

我在R中使用glmer命令(来自lme4包)估计了一个随机系数风险模型.该命令看起来像下面这样.

(logit.full <-
   glmer(event ~ 
    + V12 * I(V1 - 2)
    + V13
    + V9 * I(V5 - 2)
    + V11
    + V10
    + V2
    + V3
    + V4
    + V6 + V7 + V8
    + (1 + V6 + V7 + V8 | V14),
    family=binomial("logit"), data=dataset, 
    verbose=TRUE, control=list(maxIter=400)))
Run Code Online (Sandbox Code Playgroud)

该模型在过去三个月一直运作良好.现在,在将软件包更新到1.0-4之后,"control"命令似乎出现了问题,我收到以下错误消息:

Warning in glmer(event ~ a1+a2+a3 :
  Use control=glmerControl(..) instead of passing a list of class “list”
Error in function (optimizer = c("bobyqa", "Nelder_Mead"), restart_edge = FALSE,  : 
  unused argument(s) (maxIter = 400)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?

Ben*_*ker 7

来自?glmerControl:

optCtrl:要传递给非线性优化器的其他参数的"列表"(参见'Nelder_Mead','bobyqa').特别是,'Nelder_Mead'和'bobyqa'都使用'maxfun'来指定它们在放弃之前将尝试的最大函数评估数 - 与使用'maxit'的'optim'和'optimx'包装的优化器相比.

不可否认,这只是一个相当长而复杂的帮助页面的一小部分.

所以control=glmerControl(optCtrl=list(maxfun=...))应该这样做.

我可以看到这可能是一个FAQ,所以我们可能会添加一些特殊的代码来检测这种情况(和/或在文档中添加一个更突出的注释).