r-如何从运行1000个混合效果模型的循环中提取和保存错误



我在一个循环中运行1000个模型,但有些模型没有收敛。有人知道保存这些错误的代码吗,这样我就可以查看它们了?基本上,我有一个基于数据帧运行1000次的模型表单,然后我保存模型系数。虽然我得到了所有1000个模型系数,但最后我确实得到了一个错误,有些系数没有收敛。

代码:

for(i in 1:n_rand){
print(i)
modform <- formula(paste("RESPONSE ~",
colnames(dataframe)[(11+i)],"+(1|X)+(1|Y)"))
aaa <- lmer(modform, data=dataframe)
nullcoef_tab$COEFF[i] <- fixef(aaa)[2]
}

我不确定我手边有一个例子有合适的收敛问题,但你应该看看你的拟合模型的@optinfo$conv组件:

library(lme4)
data(Orthodont, package = "nlme")
fm1 <- lmer(distance ~ age + (age|Subject) + (0+nsex|Subject) +
(0 + nsexage|Subject), data=Orthodont)
fm1@optinfo$conv

结果:

$opt
[1] 0  ## convergence code from optimizer
$lme4
$lme4$messages
[1] "boundary (singular) fit: see help('isSingular')"
fm2 <- lmer(distance ~ age + (age*nsex|Subject), Orthodont, 
control = lmerControl(check.nobs.vs.nRE = "ignore"))
fm2@optinfo$conv
$opt
[1] 0
$lme4
$lme4$code
[1] -3
$lme4$messages
[1] "unable to evaluate scaled gradient"                                       
[2] "Model failed to converge: degenerate  Hessian with 4 negative eigenvalues"

最新更新