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

时间:2013-09-25 07:58:28

标签: 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)))

该模型在过去三个月一直运作良好。现在,在将软件包更新到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)

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

1 个答案:

答案 0 :(得分:7)

来自?glmerControl

  

optCtrl:要传递给的附加参数的“列表”             非线性优化器(参见'Nelder_Mead','bobyqa')。在             特别是'Nelder_Mead'和'bobyqa'都使用'maxfun'来             指定它们将具有的最大功能评估数             放弃之前尝试 - 与'乐观'和。相比             'optimx'包装的优化器,使用'maxit'。

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

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

我可以看到这可能是常见问题解答,因此我们可能会添加一些特殊代码来检测此案例(和/或在文档中添加更为突出的注释)。