前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 R 进行中介分析

用 R 进行中介分析

作者头像
生信菜鸟团
发布2021-12-28 15:51:02
4.9K4
发布2021-12-28 15:51:02
举报
文章被收录于专栏:生信菜鸟团

本教程将解释什么是中介分析,并演示如何用 R 进行中介分析,以及对结果的解读。如果您已经知道什么是中介效应,且只想知道如何在 R 中进行分析,请跳至本文的第二部分。

什么是中介效应

中介效应(mediation)听起来复杂,但其实很简单。中介效应也称为间接效应(indirect effect)。顾名思义,当自变量对因变量的影响由另一个变量(中介者)介导时,就会发生这种情况。当然,根据自变量和因变量之间的直接路径是否通顺,中介效应又可细分为完全中介效应和部分中介效应

分析中介效应时我们需要注意:

中介者必须是内源性的:这意味着中介者不能是治疗或研究条件。中介者本身必须依赖于外部变量,这些变量通常是实验研究中的治疗或研究条件。•研究中介者可帮助我们更深入地了解自变量如何影响因变量:中介者揭示了相关过程的一些信息。

因此,中介效应可以帮助我们找出自变量如何影响因变量。通过进行中介分析,我们可以检验关于自变量如何影响因变量的过程的假设。

举个例子

下面我们将基于模拟数据展示什么是中介效应,通过模拟数据可以更清晰地使我们了解数据中的对应关系。示例数据将基于经典的 iris 数据集。

示例数据

首先加载数据,并同时设置种子,以便重复下文的结果。

代码语言:javascript
复制
df=iris
set.seed(12334)

iris 数据集包含 5 个变量和 150 个观察值。5 个变量包括:萼片的长度和宽度、花瓣的长度和宽度以及鸢尾花的种类。

在本文中,我们将假设萼片的长度会影响花朵被蜜蜂授粉的过程,并且这种效应不是简单的直接效应,而是会通过花朵本身对蜜蜂的吸引力来进行调节。示意图如下:

因为只有萼片长度是 iris 数据集中本来就包含的变量,所以我们将模拟其余两个变量。模拟数据不仅可以使我们直观地观察数据,也可以加深我们对统计结果的理解。

首先模拟变量“对蜜蜂的吸引力”。我们将这个变量命名为 mediator 由 35% 的 Sepal.Length 加上 65% 的随机噪声组成。可以想象,变量“对蜜蜂的吸引力”中的随机噪声可能是一些花朵特定的属性,比如颜色、形状、气味等。

代码语言:javascript
复制
df$random1=runif(nrow(df),min=min(df$Sepal.Length),max=max(df$Sepal.Length))
df$mediator=df$Sepal.Length*0.35+df$random1*0.65

下一步模拟因变量“被蜜蜂授粉的可能性”。这个变量将被命名为 dv 由 35% 的 Mediator 加上 65% 的随机噪声组成。在我们的示例中,随机噪声可能是与植物属性无关的一些变量,例如花的位置、天气条件、土壤等。

代码语言:javascript
复制
df$random2=runif(nrow(df),min=min(df$mediator),max=max(df$mediator))
df$dv=df$mediator*0.35+df$random2*0.65

根据以上的“定义”,我们不难得出“萼片长度”中大约 12% (准确地说是 35% × 35% = 12.25%)的信息应该包含在因变量“被蜜蜂授粉的可能性”中,这是我们预期的总效应量。中介者的间接效应将比直接效应“更强”,因为因变量包含中介者中 35% 的信息,这也正是中介分析所要揭示的。

用 R 分析中介效应

整体流程包括四步:

1.检验总效应量;2.检验自变量对中介者的影响。萼片长度对中介者的显著影响是中介效应的先决条件;3.检验中介变量和自变量对因变量的影响。4.估计中介分析的效应值。

第 1 步:总效应量

总效应量描述了自变量萼片长度对因变量被蜜蜂授粉的可能性的总效应。其实就是我们想了解这两个变量之间是否存在一定关系。关于这种关系是否必须显著,有两种学派:

•第一种认为,两者之间一定存在显著的关系。否则,即使存在显著的间接影响,我们也不能确切地说改变自变量(萼片长度)一定对因变量(被蜜蜂授粉的可能性)有影响。但这种学派正在慢慢地败给第二个学派;•第二种则认为自变量和因变量之间不一定必须得存在显著关系。正如相关性不能证明因果关系,没有相关性也不能证明没有因果关系(Bollen 1989,p. 52;Hayes 2018,p. 80)。

总之,这里并不需要有显著的总效应。

在我们的案例中,模拟数据的总效应本身就是显著的。首先基于自变量进行一个简单的线性回归,这里也可以加上一些协变量(在我们的例子中没有)。

代码语言:javascript
复制
fit.totaleffect=lm(dv~Sepal.Length,df)
summary(fit.totaleffect)

结果如下,萼片长度对我们的因变量的总效应是显著的 (p< 0.05),系数 (0.12984) 也非常接近预想的 12.25%。

第 2 步:自变量对中介者的影响

任何中介效应,自变量(“萼片长度”)都必须显著影响中介者。所以下一步,我们需要基于自变量和中介者进行线性回归,这里也可以加上协变量(在我们的例子中没有)。

代码语言:javascript
复制
fit.mediator=lm(mediator~Sepal.Length,df)
summary(fit.mediator)

结果如下,萼片长度对中介者的效应是显著的 (p<0.05),并且系数 (0.30429) 也接近预想的 35%。

第 3 步:中介者对因变量的影响

在第三步中我们将确认中介者在控制自变量的同时也影响因变量。因为既然要存在中介效应,中介者就必须比自变量解释更多的因变量方差。

所以,我们需要基于自变量和中介变量再做一个线性回归,这里也可以加上协变量(在我们的例子中没有)。

代码语言:javascript
复制
fit.dv=lm(dv~Sepal.Length+mediator,df)
summary(fit.dv)

结果如下:

此结果可以说明:

•中介者对因变量有显著影响 (p< 0.05)。结合第 2 步的结果,我们现在可以说存在中介效应。同样,系数 ( 0.37194) 非常接近预想的 35%;•之前,我们可以说萼片长度是因变量“授粉可能性”的重要预测指标,但现在这里就不能这么说了,萼片长度并不显著,这是因为在我们的模拟数据中,因变量中所包含的自变量信息都包括在中介者中。这种情况下,我们称之为“完全中介效应”,这表示自变量对因变量的总效应都来自中介效应。中介分析有助于我们更好地理解自变量影响因变量的过程。如果自变量仍然显著,那这就是“部分中介效应”。

至此,从统计上讲,我们已经有成立“存在中介效应”这个假设的条件了。下面我们将检验该中介效应是否显著。

第 4 步:因果中介分析

这里我们用到的是 Mediation 包。

代码语言:javascript
复制
# install.packages("mediation")
library(mediation)

Mediation 包将使用我们刚刚建立的回归模型估计中介效应。

代码语言:javascript
复制
results = mediate(fit.mediator, fit.dv, treat='Sepal.Length', mediator='mediator', boot=T)

这里我们所采用的检验方法是 bootstrap,这种方法是根据标准误的理论概念,将样本容量很大的样本当作总体,进行有放回抽样(抽样次数可以自己定),从而得到更为准确的标准误。

输出结果:

代码语言:javascript
复制
summary(results)

这里的首字母缩略词含义如下:

ACME:average causal mediation effects (indirect effect),即间接效应。这里是自变量(萼片长度)通过中介体(对蜜蜂的吸引力)对因变量(授粉可能性)的间接影响。这里估计此效应为 0.11,恰好是 0.30(第 2 步中的自变量对中介者的影响)乘以 0.37(第 3 步中中介者对因变量的影响),其实这部分是我们已知的。新加入的内容是我们现在有间接效应的置信区间和显著性水平。•ADE:average direct effects,即直接效应,它描述了自变量对因变量的直接效应。•Total Effect:总效应,代表自变量对因变量的总效应(直接 + 间接)。我们在第一步中也已经计算过,这里也可以通过简单地将 ACME ( 0.1132) 和 ADE (0.0167) 相加来得到 0.1298 的结果。•Prop.Mediated:描述了自变量通过中介者对因变量的影响比例。它的计算方法是将 ACME (0.113) 除以总效应 (0.13) ,得到 0.87。

解读中介分析的结果

通过我们上面进行的中介分析可以得到以下结论:

Figure 1

The effect of sepal length on likelihood of pollination was fully mediated via the attractiveness of the bloom. As Figure 1 illustrates, the regression coefficient between sepal length and likelihood to be pollinated and the regression coefficient between attractiveness and likelihood of pollination was significant. The indirect effect was (.30)*(.37) = .11. We tested the significance of this indirect effect using bootstrapping procedures. Unstandardized indirect effects were computed for each of 1’000 bootstrapped samples, and the 95% confidence interval was computed by determining the indirect effects at the 2.5th and 97.5th percentiles. The bootstrapped unstandardized indirect effect was .11, and the 95% confidence interval ranged from .06 to .17. Thus, the indirect effect was statistically significant (p<.001).

该图的系数取自第 1 步到第 2 步中的不同模型。大部分文本信息取自 mediate 函数的结果(第 4 步)。

Ref

•https://towardsdatascience.com/doing-and-reporting-your-first-mediation-analysis-in-r-2fe423b92171

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是中介效应
  • 举个例子
    • 示例数据
      • 用 R 分析中介效应
        • 第 1 步:总效应量
          • 第 2 步:自变量对中介者的影响
            • 第 3 步:中介者对因变量的影响
              • 第 4 步:因果中介分析
                • 解读中介分析的结果
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档