我试图指定的模型是:
M4 <- glmer(CORT_pgmm~AO_Ause+(1|St),data=belcher,family=Gamma(link="log"), control=glmerControl(optimizer="bobyqa"))
执行此操作时,我使用 glmer 并将“bobyqa"
和"Nelder_Mead"
作为优化程序,收到以下警告消息。
Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv, :
Model failed to converge with max|grad| = 0.0146734 (tol = 0.001, component 1)
我按照Ben Bolker先生在之前的answer
中给出的指示一旦我将优化器更改为optimx
包中包含的优化器,警告消息就会停止显示。
M4 <- glmer(CORT_pgmm~AO_Ause+(1|St),data=belcher,family=Gamma(link="log"), control=glmerControl(optimizer="optimx",optCtrl=list(method="nlminb")))
尽管如此,我不知道如何知道这是否是正确的方法。我怎么能确定它?
如果我没有正确地写这个,我很道歉,因为这是我的第一篇文章。提前感谢您的回答。
答案 0 :(得分:0)
你永远无法确定(这是一个案例的数值优化,在一般情况下我们无法证明这一点),但作为一般事项我会说,如果你成功达到与多个不同的优化器大致相同的假设“最优”参数估计您可以不再担心收敛失败。 “近似”的接近程度取决于个人品味和科学目标。对于我的典型用例,使用不同的优化器估计彼此(例如)1%或保守地0.1%的参数将被视为“大致相等”。