首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中用glmer捕捉收敛或不收敛

在R中用glmer捕捉收敛或不收敛
EN

Stack Overflow用户
提问于 2015-03-24 02:18:26
回答 2查看 1.4K关注 0票数 3

我正在用glmer函数做模拟。对于我提取的每一次模拟,...into都是一个数据库,但我也希望有一个变量来指示模拟数据是否正确地收敛。)我收到警告,是为了前女友。奇异收敛,伪收敛,...but估计给出了)。

我试着

代码语言:javascript
复制
assign("last.warning", NULL, envir = baseenv()) # clear the previous warning
mod1=glmer(y~x+(1+x|study), family="binomial", data=test1)
warningss1=ifelse(length(warnings())>0, "yes", "no"); warningss1

它会永远回报我,不,即使它偏离

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-24 06:12:01

无论如何,我不会像我们都已经做的那样,用一般的警告机制来攻击我的头。我找不到任何方法来清除或重置警告日志。它被有效地隐藏起来了。相反,看看这个对象,说它的名字是gm1,你会发现它不能收敛。(我只是缩小了样本大小,直到收敛失败。):

代码语言:javascript
复制
    gm1@optinfo$conv$lme4$messages
#[1] "Model failed to converge with max|grad| = 0.10941 (tol = 0.001, component 5)"
#[2] " Hessian is numerically singular: parameters are not uniquely determined"   

any( grepl("failed to converge", gm1@optinfo$conv$lme4$messages) )
#[1] TRUE

#with a convergent run:
> any( grepl("failed to converge", gm1@optinfo$conv$lme4$messages) )
#[1] FALSE 
>   gm1@optinfo$conv$lme4$messages
#NULL
票数 5
EN

Stack Overflow用户

发布于 2021-10-05 12:50:03

我正在寻找解决同样问题的方法,却被这一步绊倒了。经过更多的研究后,我发现以下工作(至少对于glm-模型):

代码语言:javascript
复制
obj <- glm(y ~ x, ...) # model specification
if (obj$converged) { 
# do stuff
} else { 
# do something else 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29223906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档