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

7
我使用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 classlist”
Error in function (optimizer = c("bobyqa", "Nelder_Mead"), restart_edge = FALSE,  : 
  unused argument(s) (maxIter = 400)

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


嗯嗯,也许你应该使用 control=glmerControl(..) 而不是传递一个类为 "list" 的列表。 - Hong Ooi
谢谢你的有用提示。我的问题是,我不知道如何使用control=glmerControl(..)命令限制迭代次数。 - user2206985
1个回答

8

来自?glmerControl:

optCtrl: 一个“列表”,用于传递给非线性优化器的其他参数(参见“Nelder_Mead”、“bobyqa”)。 特别地,“Nelder_Mead”和“bobyqa”都使用“maxfun”来指定在放弃之前它们将尝试的最大函数评估数-与“optim”和“optimx”包装的优化器不同,后者使用“maxit”。

可以看出,这只是一个相对较长且复杂的帮助页面的一小部分。

因此,control=glmerControl(optCtrl=list(maxfun=...))应该可以解决问题。

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


我正在使用64位的Windows 7版本。当我尝试安装lme4版本0.99999911-1时,我收到错误消息:“在install.packages中的警告:软件包C/.../lme4_0.99999911-1.zip'不可用(适用于R版本2.15.3)”。我有一个系数大于5(5.16),其余的20个系数都在下面。 - user2206985
如果您下载http://lme4.r-forge.r-project.org/repos/bin/windows64/contrib/2.15/lme4_0.99999911-1.zip并尝试在本地安装,会发生什么? - Ben Bolker
1
你能否把你的数据发送给我们,以便我们用它来诊断/修复问题? - Ben Bolker
本地安装会导致相同的问题,错误消息显示R版本2.15.3不可用。 - user2206985
这是数据集的链接 https://dl.dropboxusercontent.com/u/24826628/dataset.csv 和相应模型的链接:https://dl.dropboxusercontent.com/u/24826628/code.r - user2206985
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接