随机截距和随机斜率模型的误差

0 r lmer

我正在使用lme4R中的包并试图适应随机斜率和随机拦截模型.当我运行随机斜率和随机拦截模型以及如何处理此错误时,如果有人能帮助我理解这个错误,我会非常有帮助:

mdl17<-lmer(yld.res ~ brk + (1+brk|state),data=data1,REML="FALSE")
Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
   Model failed to converge with max|grad| = 1.84098 (tol = 0.002, component 3)
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
   Model failed to converge: degenerate  Hessian with 1 negative eigenvalues
Run Code Online (Sandbox Code Playgroud)

非常感谢

lor*_*age 8

正如@CarlWitthoft所说,警告会告诉您模型的收敛失败.它可能不足或过度定义.你还应该检查你想要的模型是否有意义.此外,您应该lme4通过运行update.packages("lme4")或(如果您要更新所有软件包)安装最新版本的软件包update.packages().当前lme4包中包含有关收敛警告的页面.你已经装好后通过library(lme4)您可以通过发出访问该手册页?convergence.在那里,您可以找到有关警告消息的其他信息.(注意,未来的版本可能不一定包含此页面.)作为一项附加措施,您可以搜索如何使用其他优化程序.可以使用的新版本的lme4例如进口nloptr.

您还应该检查lme4Github页面:https://github.com/lme4/lme4/,如果您遇到令人担心的警告或错误消息.对于您的具体情况,有一些可能相关的信息:

"最近的版本lme4 (e.g. 1.1-6)给出了虚假的收敛警告.有关于r-sig-mixed-models的摘要帖子.如果你收到警告,max|grad|但模型通过了这个测试:

dd <- fit@optinfo$derivs
with(dd,max(abs(solve(Hessian,gradient)))<2e-3)
Run Code Online (Sandbox Code Playgroud)

然后你会看到一个误报警告,这个问题将在未来的版本中消失(1.1-7 and up)." [1]

如果Github页面包含相关信息(例如,警告或错误特定于当前版本CRAN),您应该考虑安装lme4当前的主服务器,Github并在使用时检查问题是否消失:

(1)首先安装devtools:install.packages("devtools")并将其附加library(devtools)到您的命名空间.

(2)然后使用:从Github install_github("lme4/lme4", dependencies = TRUE)安装最新的lme4包主.(如果你dependencies = TRUE应该build_vignettes = FALSE转到你的电话,你是否会遇到一个错误,表明构建的小插板失败了install_github().)


以下是汇总警告摘要的链接:http://thread.gmane.org/gmane.comp.lang.r.lme4.devel/11893(检索2014-07-16T10:04 + 02:00)

  • 实际上,版本1.1-7现在在CRAN上,因此不需要从Github安装.(不幸的是,这也增加了OP已经使用最新版本的可能性/具有真正的收敛问题......) (3认同)