如何在 lmer 拟合的三向交互作用下使用 R 预测主预测器的斜率

Posted

技术标签:

【中文标题】如何在 lmer 拟合的三向交互作用下使用 R 预测主预测器的斜率【英文标题】:How to use R to predict slope of the main predictor under an three-way interaction fitted by lmer 【发布时间】:2021-12-08 17:32:18 【问题描述】:

我有一个线性混合效应模型,具有由以下代码拟合的三向交互:

m <- lmer(cog ~ PRS*poly(Age, 2, raw=T)*Score
             + gender + Edu + fam + factor(Time)
             + (1|family/DBID), 
             data = test_all, REML = F)

在此模型中,PRS、分数和年龄的多项式具有两度(线性 + 二次)之间存在三向交互作用。对于这种三向交互,我怎样才能获得一个变量的边际效应(斜率),以其他变量为条件?例如,当年龄 = 50 且得分 = 1 时,PRS 的斜率是多少?

其次,我尝试使用以下代码来绘制这种三向交互:

plot <- ggpredict(m, ci.lvl=0.95, c("PRS [all]", "Age [60, 65, 70, 75, 80]", "Score[0, 0.321, 0.695, 1.492, 1.914, 3.252]"))
plot(m)

交互图最终显示,但 R 没有给出置信区间。错误信息是Error: Confidence intervals could not be computed.

如何用置信区间绘制这种三向交互?

【问题讨论】:

您可以通过添加minimal reproducible example 来提高在这里找到帮助的机会。添加 MRE 和所需输出的示例(以代码形式,而不是表格和图片)使其他人更容易找到和测试您的问题的答案。这样你就可以帮助别人帮助你!附言这里是a good overview on how to ask a good question 请提供足够的代码,以便其他人更好地理解或重现问题。 你试过sjPlot::plot_model(m, type="int") 吗?它使用 ggplot2 和 geom_ribbon 来显示置信带,我发现这个函数对于可视化交互非常有用。 Afaik,它也适用于 3 向交互和 lmer-models 但我可能从未尝试过将两者结合起来。 【参考方案1】:

您可以使用the marginaleffects package 来执行此操作(免责声明:我是 维护者):

library(marginaleffects)
library(lme4)

mod <- lmer(mpg ~ hp * am * vs + (1 | cyl), data = mtcars)

mfx <- marginaleffects(mod, newdata = typical(vs = 0, am = 1, cyl = 4))

summary(mfx)
## Average marginal effects 
##       type Term   Effect Std. Error z value  Pr(>|z|)    2.5 %   97.5 %
## 1 response   am  4.10167    2.13391  1.9221 0.0545884 -0.08072  8.28406
## 2 response   hp -0.03724    0.01378 -2.7016 0.0069001 -0.06426 -0.01022
## 3 response   vs -0.61237    3.52755 -0.1736 0.8621833 -7.52625  6.30151
## 
## Model type:  lmerMod 
## Prediction type:  response

【讨论】:

以上是关于如何在 lmer 拟合的三向交互作用下使用 R 预测主预测器的斜率的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用lm函数拟合多元线性回归模型假定预测变量之间有交互作用R语言使用effects包的effect函数查看交互作用对于回归模型预测响应变量的影响

R语言使用lm函数拟合多元线性回归模型假定预测变量没有交互作用(Multiple linear regression)

R语言使用lm函数拟合多元线性回归模型假定预测变量之间有交互作用(Multiple linear regression with interactions)

R语言lm函数拟合多元线性回归模型(无交互作用)并诊断模型diagnostics使用plot函数打印回归模型的Q-Q图残差拟合图标度-位置图残差与杠杆关系图

如何将分布拟合到 R 中的样本数据?

使用回归模型(LM,LMER)重复测量方差分析