实验数据的中介模型与因果效应

Causal effects in mediation models based on experimental data

发布于

2025年8月6日

设置本文R代码运行结果包含在灰色代码块中,且运行结果以##为前缀:

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = '##'
)

1 案例与数据

我们对学生的应对方式进行了干预,希望让学生更多地使用问题定向应对方式(下文简称“问题应对”),继而降低抑郁。Keng程序包中的depress数据集包含了相应的数据。其中,变量intervention表示实验分组,0表示控制组,1表示实验组。变量pm2表示第二个时间点的问题应对。变量dm3表示第三个时间点的抑郁。

library(Keng)
data("depress")
head(depress[,c("intervention", "pm2", "dm3")])
##   intervention    pm2  dm3
## 1            0 3.3125 2.00
## 2            0 3.7500 2.25
## 3            0 3.6250 1.65
## 4            0 3.3125 1.60
## 5            0 3.6250 2.10
## 6            0 3.7500 1.65

2 常规的中介模型分析

根据假设,干预通过问题应对影响抑郁,这是一个中介模型,如下图所示:

flowchart LR
  A[intervention] --> B[pm2]
  B --> C[dm3]
  A --> C[dm3]

我们首先使用线性回归估计总效应:

summary(lm(dm3 ~ intervention, depress))
## 
## Call:
## lm(formula = dm3 ~ intervention, data = depress)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.76778 -0.31778 -0.06654  0.28469  1.28222 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   1.91531    0.06129  31.247   <2e-16 ***
## intervention  0.20247    0.08859   2.286   0.0246 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4291 on 92 degrees of freedom
## Multiple R-squared:  0.05373,    Adjusted R-squared:  0.04344 
## F-statistic: 5.224 on 1 and 92 DF,  p-value: 0.02458

可得,干预对抑郁的效应为0.202。一般而言,这是干预对抑郁的总效应。

我们可以使用lavaan程序包建立中介模型,计算直接效应与中介效应:

library(lavaan)
## This is lavaan 0.6-19
## lavaan is FREE software! Please report any bugs.
model <- '
pm2 ~ a*intervention

# 注意,直接效应所对应的回归系数用 c_ 表示。
dm3 ~ c_*intervention + b*pm2
# 间接效应
i := a*b
d := c_
t := i + d
'
fit <- sem(model, depress)
summary(fit)
## lavaan 0.6-19 ended normally after 1 iteration
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                         5
## 
##   Number of observations                            94
## 
## Model Test User Model:
##                                                       
##   Test statistic                                 0.000
##   Degrees of freedom                                 0
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   pm2 ~                                               
##     intervntn  (a)   -0.209    0.136   -1.542    0.123
##   dm3 ~                                               
##     intervntn (c_)    0.149    0.082    1.828    0.067
##     pm2        (b)   -0.256    0.061   -4.176    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .pm2               0.431    0.063    6.856    0.000
##    .dm3               0.152    0.022    6.856    0.000
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     i                 0.053    0.037    1.446    0.148
##     d                 0.149    0.082    1.828    0.067
##     t                 0.202    0.088    2.310    0.021

可得,间接效应为0.053,直接效应为0.149,总效应为0.202。该总效应与前文通过回归分析计算得到的总效应一致。

实验研究的目的是证明因果效应,我们上面得到的直接效应、间接效应是因果效应吗?因果推断的实验原则是:原因(自变量)应当是通过实验操纵的,实验分组应当是随机的。在上面的中介分析中,自变量intervention是实验操纵的,且实验分组是随机的。但是,中介变量pm2不是实验操纵的。pm2dm3都是通过问卷测量得到的,中介分析得到的它们之间的关系本质上仍是相关关系。因此,前文计算得到的间接效应不是因果效应。

如何得到因果效应?最简单的方法是实验法:我们再进行一个实验,操纵pm2,继而观察pm2dm3的效应。

另一种方法是统计法,我们采用另一种更严谨的统计方法近似地计算得到因果性的直接效应、间接效应。接下来,本文就介绍这种方法。

3 基于反事实框架,重新定义因果性的直接效应与间接效应

首先,研究者基于反事实框架重新对直接效应、间接效应进行定义(Miočević et al., 2018; Muthén & Asparouhov, 2015)。

什么是因果效应?因果效应就是实验组与对照组在结果变量Y上的差异。通过随机分组,实验组与对照组之间只在实验处理上存在差异,在其他所有变量上没有差异,两组在结果变量上的差异只能是实验处理导致的。

什么是因果性的直接效应?我们用X、M、Y泛指自变量、中介变量、结果变量。因果性的直接效应指的是,当中介变量M保持不变时,自变量X的效应,即实验处理导致结果变量Y发生的变化。自变量X表示实验分组,X=0表示控制组,X=1表示实验组,因此,换言之,因果性的直接效应指的是当中介变量M保持不变时,X由0变成1导致Y发生的变化。显然,这一定义是反事实的,我们无法直接观察到上述效应,因为根据我们的中介模型假设,当X由0变成1时,M肯定会发生变化

因果性的间接效应指的是,在自变量X保持不变时,中介变量M由对照条件变成实验条件所导致的间接效应。这一定义同样是反事实的,因为当X保持不变时,M无法从对照条件变成实验条件]{.text-primary}。

另外,我们需要注意:对于控制组和实验组,中介变量M与Y的关系可能不同:

summary(lm(dm3 ~ pm2, depress[depress$intervention == 0, ]))
## 
## Call:
## lm(formula = dm3 ~ pm2, data = depress[depress$intervention == 
##     0, ])
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.58373 -0.20662  0.00843  0.23915  0.87050 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.95911    0.26774  11.052 1.15e-14 ***
## pm2         -0.30846    0.07802  -3.954 0.000258 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3115 on 47 degrees of freedom
## Multiple R-squared:  0.2496, Adjusted R-squared:  0.2336 
## F-statistic: 15.63 on 1 and 47 DF,  p-value: 0.0002577
summary(lm(dm3 ~ pm2, depress[depress$intervention == 1, ]))
## 
## Call:
## lm(formula = dm3 ~ pm2, data = depress[depress$intervention == 
##     1, ])
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.7511 -0.3204 -0.1150  0.2850  1.3928 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.82168    0.31172   9.052 1.62e-11 ***
## pm2         -0.22170    0.09563  -2.318   0.0252 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4738 on 43 degrees of freedom
## Multiple R-squared:  0.1111, Adjusted R-squared:  0.09044 
## F-statistic: 5.375 on 1 and 43 DF,  p-value: 0.02525

可见,在控制组,pm2dm3的效应是-0.308,在实验组,pm2dm3的效应是-0.222。

实验组与控制组的中介变量M并不同质,但常规的中介模型却将实验组与控制组的数据糅在一起,继而估计中介变量M与结果变量Y的关系,这样估计得到的效应并不符合基于反事实框架所定义的因果性的直接效应与间接效应。我们应当具体情况具体分析。

接下来,我们用公式定义因果性的直接效应与间接效应。基于反事实框架,我们可以将X对Y的效应进行如下分解:

  • 受控直接效应(controlled direct effect, CDE)

    CDE = Y(X=1, M) - Y(X=0, M),CDE为当M保持不变时X由0变成1时Y的变化量。

  • 纯粹自然直接效应(pure natural direct effect, PNDE)

    PNDE = Y(X=1, M(X=0)) - Y(X=0, M(X=0)),PNDE为当M为控制条件下的M时X由0变成1时Y的变化量。

  • 总自然直接效应(total natural direct effect, TNDE)

    TNDE = Y(X=1, M(X=1)) - Y(X=0, M(X=1)),TNDE为当M为实验条件下的M时X由0变成1时Y的变化量。

  • 纯粹自然间接效应(pure natural indirect effect, PNDE)

    PNIE = Y(X=0, M(X=1)) - Y(X=0, M(X=0)),PNIE为当X=0时M由控制条件下的M变成实验条件下的M时Y的变化量。

  • 总自然直接效应(total natural direct effect, TNDE)

    TNIE = Y(X=1, M(X=1)) - Y(X=1, M(X=0)),TNIE为当X=1时M由控制条件下的M变成实验条件下的M时Y的变化量。

  • 总效应

    TE = Y(X=1, M(X=1)) - Y(X=0, M(X=0)),TE为X从0变成1M从控制条件下的M变成实验条件下的M时Y的变化量。由上面的公式可得,TE = TNDE + PNIE = PNDE + TNIE

可见,上述定义实现了“具体情况具体分析”,即对X=0或1、M为控制条件或实验条件这些不同的情况分别进行了定义。上述定义将因果效应定义为结果变量的差异,这一定义不考虑变量间关系的形式。

4 一个更严谨的统计方法:有调节的中介模型

自变量、中介变量、结果变量之间的关系可以表示为以下几个回归方程:

Y = i1 + c*X + e1 (1)

在上式中,i1是截距,c是X对Y的回归系数,e1是残差。一般而言,c是X对Y的总效应(total effect, TE)。

M = i2 + a*X + e2 (2)

在上式中,i2是截距,a是X对M的回归系数,e2是残差。

Y = i3 + c_*X + b*M + d*X*M + e3 (3)

在上式中,i3是截距,c_是X对Y的回归系数,b是M对Y的回归系数,d是X与M的交互项X*M对Y的回归系数,e3是残差。

那么,通过对回归方程(3)进行同类项合并,我们可以得到:

X对Y的直接效应为:c_ + d*M = c_ + d*(i2 + a*X) (4),该效应被称为受控直接效应(controlled direct effect,CDE),该名字表达了X对Y的直接效应受到了M的控制。

M对Y的效应为:b + d*X (5)

X经M对Y的间接效应为:a*(b + d*X) (6)

注意,由于数据是实验数据,X的取值为0或1,所以我们可以将X的值直接代入上面的公式,之后,我们将得到:

  • 对于控制组,X = 0,

    • X对Y的直接效应为:c_ + d*M = c_ + d*(i2 + a*X) = c_ + d*i2,该效应被称为纯粹自然直接效应(pure natural direct effect, PNDE),即在未经实验处理的自然状态下,X对Y的直接效应。

    • M对Y的效应为:b + d*X (5) = b

    • X经M对Y的间接效应为:a*(b + d*X) = a*b,该效应被称为纯粹自然间接效应(pure natural indirect effect, PNIE),即在未经实验处理的自然状态下,X经M对Y的间接效应。

  • 对于实验组,X = 1,

    • X对Y的直接效应为:c_ + d*M = c_ + d*(i2 + a*X) = c_ + d*(i2 + a),该效应被称为总自然直接效应(pure natural direct effect, PNDE),即,在实验处理之后,在纯粹自然直接效应的基础上叠加了实验处理带来的效应后,X对Y的总直接效应。

    • M对Y的效应为:b + d*X (5) = b + d

    • X经M对Y的间接效应为:a*(b + d*X) = a*(b + d),该效应被称为总自然间接效应(pure natural direct effect, PNDE),即,在实验处理之后,在纯粹自然间接效应的基础上叠加了实验处理带来的效应后,X经M对Y的总间接效应。

一般而言,总效应 TE = PNDE + TNIE = TNDE + PNIE

接下来,我们使用depress数据,计算intervention经pm2影响dm3的因果性直接效应与间接效应。

model <- '
pm2 ~ i2*1 + a*intervention

# 注意,直接效应所对应的回归系数用 c_ 表示。
dm3 ~ i3*1 + c_*intervention + b*pm2 + d*intervention:pm2

# 纯粹自然直接效应
PNDE := c_ + d*i2

# 纯粹自然间接效应
PNIE := a*b

# 总自然直接效应
TNDE := c_ + d*(i2 + a)

# 总自然间接效应
TNIE := a*(b + d)

# 总效应
T1 := PNDE + TNIE
T2 := TNDE + PNIE
'
fit <- sem(model, depress)
summary(fit)
## lavaan 0.6-19 ended normally after 11 iterations
## 
##   Estimator                                         ML
##   Optimization method                           NLMINB
##   Number of model parameters                        10
## 
##   Number of observations                            94
## 
## Model Test User Model:
##                                                       
##   Test statistic                               309.840
##   Degrees of freedom                                 2
##   P-value (Chi-square)                           0.000
## 
## Parameter Estimates:
## 
##   Standard errors                             Standard
##   Information                                 Expected
##   Information saturated (h1) model          Structured
## 
## Regressions:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   pm2 ~                                               
##     intervntn  (a)   -0.209    0.136   -1.542    0.123
##   dm3 ~                                               
##     intervntn (c_)   -0.137    0.081   -1.690    0.091
##     pm2        (b)   -0.308    0.061   -5.048    0.000
##     intrvnt:2  (d)    0.087    0.024    3.605    0.000
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .pm2       (i2)    3.384    0.094   36.092    0.000
##    .dm3       (i3)    2.959    0.217   13.622    0.000
##     intrvnt:2         1.520    0.172    8.843    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .pm2               0.431    0.063    6.856    0.000
##    .dm3               0.151    0.022    6.856    0.000
##     interventn:pm2    2.777    0.405    6.856    0.000
## 
## Defined Parameters:
##                    Estimate  Std.Err  z-value  P(>|z|)
##     PNDE              0.156    0.115    1.354    0.176
##     PNIE              0.064    0.044    1.475    0.140
##     TNDE              0.138    0.112    1.234    0.217
##     TNIE              0.046    0.033    1.402    0.161
##     T1                0.202    0.117    1.737    0.082
##     T2                0.202    0.117    1.737    0.082

5 因果性之所以成立的“四个没有”假定

这样的统计把戏真能证明因果效应吗?研究者指出,这需要满足下面的“四个没有”假定(Miočević et al., 2018; Muthén & Asparouhov, 2015):

  1. X与Y的关系没有未测量的混淆变量。
  2. M与Y的关系没有未测量的混淆变量。
  3. X与M的关系没有未测量的混淆变量。
  4. M与Y的关系的混淆变量(未测量或已测量)没有受到X的影响。

6 参考文献

Miočević, M., Gonzalez, O., Valente, M. J., & MacKinnon, D. P. (2018). A tutorial in Bayesian potential outcomes mediation analysis. Structural Equation Modeling: A Multidisciplinary Journal, 25(1), 121-136.

Muthén, B., & Asparouhov, T. (2015). Causal effects in mediation modeling: An introduction with applications to latent variables. Structural Equation Modeling: A Multidisciplinary Journal, 22(1), 12-23.