6

我使用 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 后,“控制”命令似乎有问题,我收到以下错误消息:

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)

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

4

1 回答 1

8

来自?glmerControl

optCtrl:要传递给非线性优化器的附加参数的“列表”(参见“Nelder_Mead”、“bobyqa”)。特别是,'Nelder_Mead' 和 'bobyqa' 都使用 'maxfun' 来指定他们在放弃之前将尝试的函数评估的最大数量 - 与使用 'maxit' 的 'optim' 和 'optimx' 包装的优化器形成对比。

诚然,这是一个相当长且复杂的帮助页面的一小部分。

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

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

于 2013-09-25T11:18:27.163 回答