1

我和一个学生一起工作,用 GLMER 运行一些模型,我们发现,使用相同的代码,模型会为我而不是他收敛。即他会收到如下错误消息: 警告消息:在 checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, : 模型无法收敛于 max|grad| = 0.00261244 (tol = 0.001,分量 1)

经过检查,我们意识到因为我运行的是旧版本的 R,所以当我更新我的包时,LME4 只达到了 1.1-7,而他运行的是 1.1-11。所以我更新了 R 和 LME4,现在我们得到了相同的结果。我认为这可能是特定于我们正在运行的模型,但现在我正在与另一个正在运行 LME4 1.1-7 的学生一起工作,她的模型再次为她收敛,但不适合我。1.1-11 中是否有一些变化会导致它更有可能发出这些警告?如果是这样,更改的性质能否提示我们为什么会收到 1.1-11 的警告?最后,我们相信哪些结果,我们可以做些什么来处理收敛警告?

4

1 回答 1

2

LME的CRAN新闻页面可能是寻找变化的最佳场所。

例如,我注意到了这一点。

1.1-8 用于收敛检查的梯度缩放现在使用 Hessian 的 Cholesky 因子;虽然它更正确,但这会导致一些额外的(可能是误报)收敛警告

为了避免收敛警告,您可以采取合理的措施。

  • 重新调整连续预测变量
  • 尝试不同的优化器
  • 在预测变量组合中寻找稀疏单元格
  • 考虑您的实验设计是否需要嵌套随机效应

另请参阅这个关于收敛失败的交叉验证讨论。

于 2016-02-19T16:49:20.607 回答