每个参与者都有相同的截距和斜率?

3

我对为什么我的coef()函数对于数据中的每个参与者都返回相同的截距和斜率感到困惑。

背景是我在使用anova函数比较两个由lmer构建的模型。

模型1如下: model1 <- lmer(Pen ~ wave + (1 | id), data = no_missing, REML = FALSE)

而模型2则添加了一个感兴趣的变量QEL,如下所示: model2 <- lmer(Pen ~ wave + QEL + (1 | id), data = no_missing, REML = FALSE)

当我运行anova(model1, model2)时,得到了预期的结果。但是,当我查看系数(coef())时,问题就出现了。

我想知道为什么每个人的截距和斜率(以下内容)都是相同的?我是否没有正确地组合模型以获得每个人的截距(即它们基于固定效应而非随机效应)?

model1和model2 coef()输出:

$id
   (Intercept)     wave
1     74.66694 17.31497
7     74.66694 17.31497
10    74.66694 17.31497
11    74.66694 17.31497
13    74.66694 17.31497
14    74.66694 17.31497
15    74.66694 17.31497
16    74.66694 17.31497
18    74.66694 17.31497
28    74.66694 17.31497
29    74.66694 17.31497
30    74.66694 17.31497
31    74.66694 17.31497
32    74.66694 17.31497
33    74.66694 17.31497
34    74.66694 17.31497
35    74.66694 17.31497
36    74.66694 17.31497
37    74.66694 17.31497
38    74.66694 17.31497
39    74.66694 17.31497
40    74.66694 17.31497

attr(,"class")
[1] "coef.mer"```  


> coef(model2)
$id
   (Intercept)     wave      QEL
1      36.8735 16.18188 0.436023
7      36.8735 16.18188 0.436023
10     36.8735 16.18188 0.436023
11     36.8735 16.18188 0.436023
13     36.8735 16.18188 0.436023
14     36.8735 16.18188 0.436023
15     36.8735 16.18188 0.436023
16     36.8735 16.18188 0.436023
18     36.8735 16.18188 0.436023
28     36.8735 16.18188 0.436023
29     36.8735 16.18188 0.436023
30     36.8735 16.18188 0.436023
31     36.8735 16.18188 0.436023
32     36.8735 16.18188 0.436023
33     36.8735 16.18188 0.436023
34     36.8735 16.18188 0.436023
35     36.8735 16.18188 0.436023
36     36.8735 16.18188 0.436023
37     36.8735 16.18188 0.436023
38     36.8735 16.18188 0.436023
39     36.8735 16.18188 0.436023
40     36.8735 16.18188 0.436023

attr(,"class")
[1] "coef.mer"

1
@jbrimm2004 当你拟合这些模型中的任一个时,是否会收到奇异拟合警告? - qdread
1
@qdread 是的,是的!这是问题的原因吗?这是由于非常小的随机效应吗?另外,谢谢您的回复。 - jbrimm2004
是的,数据无法支持随机效应,因此(简单地说)lmer会“放弃”,并将所有随机截距调用为零。这经常发生在每个受试者只有少量数据点的情况下。这个统计交流网站上的问题可能会对你有所帮助: https://stats.stackexchange.com/questions/378939/dealing-with-singular-fit-in-mixed-models . 那里提出了一些解决方案。我最喜欢的解决方案是在贝叶斯框架中重新拟合模型,这可以更好地处理小样本大小问题。 - qdread
恭喜你的第一个stackoverflow问题!在未来,我建议你查看有关制作“可重现示例”的教程……如果你在问题中提供了代码,我可以在自己的机器上运行以重现你的错误(或警告),那么解决问题就会更容易和更快速。请参阅https://dev59.com/eG025IYBdhLWcg3whGSx - qdread
1
@qdread 非常感谢您的帮助和链接。由于 COVID-19 的影响,这项研究的样本规模确实很小,因此每个人的数据点数量也很少(主要是因为 COVID-19)。我将使用您提供的链接查看我的贝叶斯选项。此外,感谢您提供“可重复代码”的链接。我之前没有看到过它,但我知道它可以让每个人的生活更轻松! - jbrimm2004
显示剩余2条评论
1个回答

1
这种情况通常是由于lmer()调用返回一个奇异拟合所致。数据无法支持随机效应,因此(简单来说),lmer“放弃”并将所有随机截距设置为零。
对于model1model2的情况,该模型仅针对每个id具有随机截距,没有随机斜率。因此,如果随机截距具有非零估计值,则coef(model1)将显示每个id的不同截距系数,但在每行中wave斜率系数相同。
这通常发生在每个受试者的数据点很少的情况下。Stats StackExchange上的这个问题可能会提供一些帮助: https://stats.stackexchange.com/questions/378939/dealing-with-singular-fit-in-mixed-models。那里提出了一些解决方案。我最喜欢的解决方案是在贝叶斯框架中重新拟合模型,它可以更好地处理小样本大小的问题。也请参见如何应对线性混合模型(lme4)中的奇异拟合?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接