我正在使用lme4
包 ( lmer function
)分析一些纵向数据3 Levels
:测量点嵌套在嵌套在家庭中的个人中。我对围绕特定生活事件的线性和非线性变化曲线感兴趣。我的模型有很多时间预测变量(表示事件发生前后的线性变化和事件发生前后的非线性变化(即时间变量的平方))。此外,我有几个不随时间(即个性特征)和一些控制变量(例如,年龄、性别)而变化的 Level-2 预测变量。到目前为止,我没有包括任何随机斜率或跨级别交互。
这是我的模型代码:
model.RI <- lmer(outcome ~ time + female_c + age_c + age_c2 + preLin + preLin.sq + postLin + postLin.sq + per1.c + per2.c + per3.c + per4.c + per5.c + (1 | ID) + (1 | House))
结果 = 我的因变量
time = year 1, year 2, year 3 ... (until year 9);
这个变量象征着测试效果之类的东西
female_c = gender centered
age_c = age centered
age_c2 = age squared centered
preLin = time variable
表示事件发生的时间(该变量在事件发生后为 0,为 -1,例如提前一年,-2 提前两年等)
preLin.sq = squared values of preLin
postLin = time variable
表示事件发生后的时间(该变量在事件发生前为 0,在事件发生后增加;例如,事件发生后一年为 +1)
postLin.sq = squared values of postLin
per1.c until per5.c = personality traits on Level 2 (centered)
ID = indicating the individuum
House = indicating the household
我想知道如何绘制该lmer
模型的预测值(例如,使用 ggplot2?)。我已经使用method=gam
R 中的绘制了变化曲线。这是一种相当数据驱动的方法,无需预先定义曲线是线性还是二次或其他方式来检查数据。我现在想检查我的参数化 lmer 模型是否与gam-plot
我已有的数据驱动模型相当。你有什么建议如何做到这一点吗?
我很乐意在这方面得到一些帮助!也请随时询问我对我想做的事情的解释是否不够准确!
非常感谢!
您可以使用ggeffects-package 中ggpredict()
的-function。如果要绘制时间 ( preLin
) 的预测值,只需编写:
ggpredict(model.RI, "preLin")
该函数返回一个数据框(参见文章),您可以在 ggplot 中使用它,但您也可以直接绘制结果:
ggpredict(model.RI, "preLin") %>% plot()
或者
p <- ggpredict(model.RI, "preLin")
plot(p)
您也可以使用sjPlot-package,但是,对于边际效应/预测值,sjPlot::plot_model()
- 函数在内部仅调用ggeffects::ggpredict()
,因此结果基本上相同。
模型的另一个注意事项:如果您有纵向数据,您还应该将时间变量作为随机斜率包括在内。我不确定如何postLin
准确地引用preLin
,但是如果preLin
捕获了所有测量值,您至少应该像这样编写模型:
model.RI <- lmer(
outcome ~ time + female_c + age_c + age_c2 + preLin + preLin.sq +
postLin + postLin.sq + per1.c + per2.c + per3.c + per4.c + per5.c +
(1 + preLin | ID) + (1 + preLin | House)
)
如果您还假设每个人的二次趋势 ( ID
),您甚至可以将平方项添加为随机斜率。
正如您的图形示例建议使用样条线,您也可以尝试以下操作:
library(splines)
model.RI <- lmer(
outcome ~ time + female_c + age_c + age_c2 + bs(preLin)
postLin + postLin.sq + per1.c + per2.c + per3.c + per4.c + per5.c +
(1 + preLin | ID) + (1 + preLin | House)
)
p <- ggpredict(model.RI, "preLin")
plot(p)
样条曲线的示例也在我上面提到的网站上进行了演示。
编辑:另一个注释与嵌套有关:您当前正在建模一个完全交叉或交叉分类的模型。如果完全嵌套,随机部分将如下所示:
... + (1 + preLin | House / ID)
(另请参阅这个小代码示例)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句