我正在使用R中的lme4
包并尝试适应随机斜率和随机拦截模型。
当我运行随机斜率和随机拦截模型以及如何处理此错误时,如果有人能帮助我理解这个错误,我会非常有帮助:
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
非常感谢
答案 0 :(得分:8)
正如@CarlWitthoft所说,警告会告诉您模型的收敛失败。它可能不足或过度定义。你还应该检查你想要的模型是否有意义。此外,您应该通过运行lme4
或(如果您要更新所有软件包)update.packages("lme4")
来安装最新版本的update.packages()
软件包。当前的lme4
包中包含有关收敛警告的页面。通过library(lme4)
加载后,您可以通过发出?convergence
来访问该手册页。在那里,您可以找到有关警告消息的其他信息。 (注意,未来的版本可能不一定包含此页面。)作为一项附加措施,您可以搜索如何使用其他优化程序。 lme4
的新版本,例如导入nloptr
可以使用。
如果遇到警告或错误消息,您还应该检查lme4
的Github页面:https://github.com/lme4/lme4/。对于您的具体情况,有一些可能相关的信息:
&#34;
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)
然后您会看到误报警告,问题将在以后的版本
(1.1-7 and up)
中消失。&#34; [1]
如果Github
页面包含相关信息(例如警告或错误特定于CRAN
上的当前版本),您应该考虑从{{安装lme4
当前版本1}}并检查问题是否在您使用时消失:
(1)首先安装Github
:devtools
并将其install.packages("devtools")
附加到您的命名空间。
(2)然后使用:library(devtools)
从Github安装最新的install_github("lme4/lme4", dependencies = TRUE)
包主。 (如果您遇到错误,表示尽管lme4
建立了小插图失败,您应该dependencies = TRUE
通过build_vignettes = FALSE
。
以下是汇总警告摘要的链接:http://thread.gmane.org/gmane.comp.lang.r.lme4.devel/11893(检索2014-07-16T10:04 + 02:00)