首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用glmer的模型收敛问题

使用glmer的模型收敛问题
EN

Stack Overflow用户
提问于 2020-09-06 02:07:36
回答 1查看 423关注 0票数 0

我试图运行一个混合效应泊松模型。当我输入一个特定的变量时,我遇到了模型收敛的问题,我希望能够思考一下为什么会这样。这是我的一段数据。

代码语言:javascript
运行
复制
id   gender race gene   grade  y
1     0      1    -1.5     6   4
1     0      1    -2.1     7   2
1     0      1     1.5     8   6
2     1      2     3.6     6   4
2     1      2     2.1     7   3
2     1      2     1.6     8   1

我使用了下面的代码,并得到下面的错误消息。

代码语言:javascript
运行
复制
m2<-glmer(y ~ gender + race + gene + grade +
            (1 | id), data=data_long_1, family = "poisson"(link = "log"), control = glmerControl(optimizer="bobyqa", optCtrl=list(maxfun=2e5)))
                                                                                               
Warning message:
In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.00392577 (tol = 0.002, component 1)

问题是“等级”变量,因为当我删除变量时,我没有收到该错误消息。每个人都有三个孙辈(6,7,8人)。理想情况下,我想进行x级基因相互作用,但如果模型中没有这个等级,我就无法做到这一点。

估计系数如下:

代码语言:javascript
运行
复制
Fixed effects:
                                Estimate Std. Error z value Pr(>|z|)    
(Intercept)                    1.683e+00  4.653e-02  36.159  < 2e-16 ***
gender1                       -3.194e-02  3.584e-02  -0.891  0.37288    
race1                          1.329e-01  4.249e-02   3.127  0.00177 ** 
gene                           8.298e-03  2.499e-02   0.332  0.73983    
grade                          2.980e-07  6.552e-03   0.000  0.99996    
gene:grade                     3.346e-07  6.768e-03   0.000  0.99996    

有人能洞察为什么这个变量会是个问题吗?

EN

Stack Overflow用户

回答已采纳

发布于 2020-09-06 19:11:59

我无法复制您的收敛警告:对于您脱机发送的数据,在Linux上,使用lme4的开发版本,我没有收到任何收敛警告--这样的平台依赖并不是非常罕见的.

但是,我想我可以根据你发送的数据的结构来解释你的结果。下面是一个典型个人的示例,为保密性而修改了值:

代码语言:javascript
运行
复制
     id gender race  y      gene grade
1  xxxx      1    1  8 -1.543210     6
2  xxxx      1    1  8 -1.543210     7
3  xxxx      1    1  8 -1.543210     8
4  xxxx      1    1  8 -1.543210     9

在数据集中有许多个体( 500到1000之间)

这意味着gradey的平均影响,或者任何与grade的交互作用,都是零的!

由于这个数据集实际上没有关于每个id的多个观测值的信息(即每个人重复4次相同的值,除grade外),所以最好只对每个人进行第一次观察并进行拟合。

代码语言:javascript
运行
复制
glm(y ~ gender + race + gene, data=..., family=poisson)

(我通常省略(link="log"),因为它是默认的,但如果它使代码更清晰,则可以包含它)。

一个similar question显示,如果你试图用一个剩余方差项(例如LMM/高斯响应)来拟合一个模型,那么它就会变得更加病态。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63760090

复制
相关文章

相似问题

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