我在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)
有谁知道如何解决这个问题?
答案 0 :(得分:7)
来自?glmerControl
:
optCtrl:要传递给的附加参数的“列表” 非线性优化器(参见'Nelder_Mead','bobyqa')。在 特别是'Nelder_Mead'和'bobyqa'都使用'maxfun'来 指定它们将具有的最大功能评估数 放弃之前尝试 - 与'乐观'和。相比 'optimx'包装的优化器,使用'maxit'。
不可否认,这只是一个相当长而复杂的帮助页面的一小部分。
所以control=glmerControl(optCtrl=list(maxfun=...))
应该这样做。
我可以看到这可能是常见问题解答,因此我们可能会添加一些特殊代码来检测此案例(和/或在文档中添加更为突出的注释)。