我的数据是多级的(每个条件下每个参与者都有多个测量值),有 3 个条件。
DV = 连续;中介=连续; IV = 分类(有 3 个条件:对照、条件 A、条件 B;在 ss 内)。
对于 IV,我创建了虚拟变量(A = 0, 1;B = 0, 1;Control = 0, 1)进行分析。
mediate() 是否适用于多类别预测变量?假设我的模型理论上是合理的,是否适合运行以下分析来计算变量的间接效应、总效应、直接效应等中介路径?
我使用 mediate() 命令的“mediation”包和“lme4”包来生成多级模型。
我的分析如下:
分析:
library(lme4)
library(mediation)
fit.mediator=lmer(Mediator ~ IV.A + IV.B + (1 | id), data=data1)
summary(fit.mediator)
fit.dv=lmer(DV ~ IV.A + IV.B + Mediator + (1 | id), data=data1)
summary(fit.dv)
summary(mediate(fit.mediator, fit.dv, treat='IV.A', mediator='Mediator'))
summary(mediate(fit.mediator, fit.dv, treat='IV.B', mediator='Mediator'))
您可以做到这一点,但您需要将
IV
作为因子,而不是自己将其设为虚拟变量。 建模功能将处理这个问题。 这是一个带有 mtcars
数据的示例:
library(dplyr)
library(lme4)
library(mediation)
data(mtcars)
mtcars <- mtcars %>%
mutate(obs = row_number(),
cyl = as.factor(cyl),
model = rownames(mtcars),
make = gsub("([A-Za-z]*) .*", "\\1", model))
m1 <- lmer(hp ~ cyl + (1|make), data=mtcars)
m2 <- lmer(qsec ~ hp + cyl + (1|make), data=mtcars)
m <- mediate(m1, m2, treat="cyl", mediator = "hp", control.value="4", treat.val="8")
summary(m)
#>
#> Causal Mediation Analysis
#>
#> Quasi-Bayesian Confidence Intervals
#>
#> Mediator Groups: make
#>
#> Outcome Groups: make
#>
#> Output Based on Overall Averages Across Groups
#>
#> Estimate 95% CI Lower 95% CI Upper p-value
#> ACME -1.792 -3.145 -0.45 0.008 **
#> ADE -0.463 -2.319 1.43 0.604
#> Total Effect -2.255 -3.353 -1.27 <2e-16 ***
#> Prop. Mediated 0.808 0.194 1.92 0.008 **
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Sample Size Used: 32
#>
#>
#> Simulations: 1000
创建于 2024-12-18,使用 reprex v2.1.0
在上面的例子中,我使用 4 作为对照,8 作为治疗。 如果您的 IV 具有三个级别,您可能需要多次执行此操作才能获得从每个值移动到另一个值的效果。