简介:资源围绕中介效应检验展开,面向社会科学、心理学、市场营销等领域的实证研究者,系统整理了逐步检验法、Sobel检验与Bootstrap检验的原理、判定标准及STATA实现命令。内容覆盖变量中心化预处理、逐步回归三步流程、系数c/a/b/c'的解读,以及部分中介与完全中介的区分,并配有Sobel和Bootstrap的实操命令与结果说明,帮助理解自变量如何通过中介变量影响因变量。资源为单份DOCX文档,共1个文件,大小154KB,便于直接阅读与收藏。目前已有593人浏览学习。通过该文档可快速掌握中介效应检验的逻辑框架、软件操作细节及中介效应占比计算方式,减少查阅多篇文献的成本,尤其适合正在撰写实证论文或需要完成中介效应分析的研究者参考使用。 打开Word文档之前,先想清楚一个问题:中介效应到底在回答什么?
最近连续审了七八篇涉及机制检验的稿件,发现一个普遍现象——很多作者把"逐步检验法"和"Sobel检验"当成某种必须走完的流程,跑完三次回归、算出一个Sobel的z值就万事大吉。但你要是追问一句"这两个方法各自的假设是什么、在什么条件下会失效、结果该怎么解释",不少人就答不上来了。
这篇文章不打算讲教科书里的抽象定义,我把这套东西重新整理成一篇可以直接照着做的实操笔记:先讲清楚中介效应的底层逻辑,再拆开逐步检验法的每一步判断,接着把Sobel检验的原理和手算过程掰开揉碎,最后用一个完整案例从数据一路走到论文报告。中间穿插的经验和坑,都是我实际跑数据时踩过的。
1. 中介效应到底在回答什么问题:从因果链条说起
中介效应描述的是一个因果链条:自变量X先影响中间变量M,再由M影响因变量Y,整个路径写作X→M→Y,M就是中介变量。
生活里最直观的例子:你吃了一口辣椒(X),辣椒素刺激口腔黏膜产生灼热感(M),灼热感让你喊辣(Y)。如果你只统计"吃辣椒"和"喊辣"之间的关系,相关性一定很高,但这个相关解释不了任何机制——是辣椒太辣,还是你口腔耐受度低,还是别的什么原因?中介模型补上的就是这一环:吃辣椒先带来了灼热感,灼热感才是"喊辣"的直接推手。
在管理学、心理学、社会学和市场营销的研究里,中介效应的用处更实际。比如你发现工作压力(X)能显著预测职业倦怠(Y),这对实践的指导价值有限——你总不能让人"别有那么大压力"吧?但如果你验证了"工作压力→工作家庭冲突→职业倦怠"这条路径,干预就有了明确靶点:帮助员工处理工作与家庭的边界,比单纯喊"减轻压力"有效得多。这就是中介效应在理论和实践上的双重意义。
理解了这一点,你就能明白中介分析和一般的相关分析、回归分析的区别:
- 相关分析回答"是否有关联";
- 普通回归回答"在控制其他变量后,X对Y是否有独立贡献";
- 中介分析回答"X通过什么机制影响Y"。
三者不是替代关系,而是层层递进。现在很多期刊,尤其是强调机制贡献的研究,默认要求作者在实证部分报告中介效应检验,就是为了避免停留在"黑箱相关"层面。
中介效应检验在数学上可以压缩成三个回归方程:
- Y = cX + e₁ → 检验总效应c
- M = aX + e₂ → 检验X对M的效应a
- Y = c'X + bM + e₃ → 检验控制X后M对Y的效应b,以及控制M后X对Y的直接效应c'
这里的系数关系有一个恒等式:c = c' + a×b。也就是说,X对Y的总效应被拆成了两部分——直接效应c'和间接效应a×b。中介效应检验的核心,说穿了就是看a×b这个间接效应到底显不显著、有多大。
需要特别提醒:这三个方程必须基于同一个样本,这是很多新手容易忽略的。有的同学做问卷时样本量本来就紧张,又因为某个变量缺失值多,就顺手把缺失样本删掉了,结果三个方程用了不同的N,这个错误会让整个检验失去意义。
2. 逐步检验法:三次回归背后的判断逻辑与SPSS操作
2.1 三个回归方程里的每个系数到底是什么意思
逐步检验法(也叫因果步骤法)的逻辑朴素得让人意外:既然中介效应的核心是a×b,那我就一步一步检验这个乘积里的两个因子各自是否显著。
先看第一个方程,Y = cX + e₁。这里的c是总效应,它回答的问题是"X在整体上是否影响Y"。如果c都不显著,传统流程通常就到此为止,不再继续做中介分析。但也有一类特殊情况,就是所谓的"遮掩效应",后面我会专门讲。
第二个方程,M = aX + e₂。a的显著性意味着X能不能有效驱动中介变量。如果X压根改变不了M,那中间路径的第一环就断了。
第三个方程,Y = c'X + bM + e₃。这个方程要同时看两个系数:b是否显著,判断M对Y是否有独立的解释力;c'是否显著,判断在纳入M之后,X对Y的直接效应还剩下多少。注意,这里有X和M两个自变量,所以模型会自动处理两者的共线性问题,别自己去手动"控制"。
2.2 判断规则:完全中介与部分中介
逐步检验法的判断规则可以整理成一张表:
| 检验步骤 | 回归方程 | 关注系数 | 结论判断 |
|---|---|---|---|
| 第一步 | Y = cX + e₁ | c | 显著才继续,不显著则停止(遮掩效应除外) |
| 第二步 | M = aX + e₂ | a | 不显著则考虑Sobel检验 |
| 第三步 | Y = c'X + bM + e₃ | b | 不显著则考虑Sobel检验 |
| 第四步 | 同第三步 | c' | 不显著→完全中介;显著且绝对值变小→部分中介 |
也就是说,只有当a和b都显著时,才能说明间接效应a×b的存在是站得住的。在此基础上再去看c':如果c'不显著,说明加入M之后X对Y的直接作用消失了,这叫完全中介;如果c'依然显著,但比总效应c小,说明M只解释了一部分机制,这叫部分中介。
我见过很多人在"完全中介"和"部分中介"的判定上反复纠结。一个重要的提醒是:完全中介是一个非常强的结论,它意味着理论上X对Y没有其他任何直接影响通道,这在社会科学中几乎不可能成立。所以现在的主流做法是报告"部分中介"并结合间接效应的置信区间,而不是执着于"完全"两个字。
另一个常被误解的点是:有些人以为逐步检验法"过时了",审稿人会嫌弃。事实恰恰相反——温忠麟等(2004)的方法学论文明确指出,逐步检验法是犯第一类错误(把不存在的效应误判为存在)概率最低的方法之一,它的缺点是统计功效可能偏低,即容易漏掉真实存在的弱效应。所以,逐步检验法应该是你的基础操作,而不是被淘汰的老古董。
2.3 SPSS里的标准操作流程
在SPSS里做逐步检验法,其实就是三次普通的线性回归,操作路径是"分析→回归→线性":
- 方程一:因变量选Y,自变量选X,点确定;
- 方程二:因变量选M,自变量选X;
- 方程三:因变量选Y,自变量分两层放入——第一层放X,第二层放M,勾选"方法"为"输入"。
方程三为什么要分层放入?这纯粹是为了看R²的变化以及c'怎么随M的加入而变化。如果你用强行进入法一次性把X和M都丢进去,结果表里依然会给出c'和b的系数、标准误、t值和显著性,这些才是判断的直接依据。
建议在回归选项中同时勾选"描述性"和"共线性诊断"。方程三中X和M很可能存在中等程度的相关,共线性诊断里的VIF值超过5就需要警惕,超过10基本可以断定b的估计已经不稳定了。
还要说一句标准化的问题。如果是论文投稿,很多期刊要求报告标准化回归系数(β),但SPSS默认给的是非标准化系数B。两种做法都可行,关键是前后一致。如果决定用标准化系数,请先对变量做Z分数标准化再跑回归,不要拿SPSS表格里那个"Beta"列混着"B"列用,两者混排会让数值对不上。
3. Sobel检验:原理、手算示例与软件实现
3.1 为什么逐步检验之后还要再算Sobel
逐步检验法有一个天然的"盲区":当a显著但b不显著,或者a不显著但b显著时,你没法直接判断间接效应a×b是否显著。这时候,a×b的估计量本身可能依然有统计学意义,因为两个不显著不等于乘积不显著——两个系数各自的抽样误差叠加之后,理论上仍然可能得到一个显著偏离零的乘积。
Sobel检验干的就是这件事:直接检验零假设H₀: a×b = 0。它适用的场景是a和b至少有一个不显著时,作为逐步检验法的补充。在温忠麟等(2004)提出的中介效应检验流程里,Sobel检验是明确被纳入的环节。
顺带说一个背景:温忠麟等人在2014年更新了这套流程,核心变化是建议用偏差校正的Bootstrap法取代Sobel检验,因为乘积分布往往不是正态的。但Sobel检验并没有完全退出历史舞台——很多期刊、很多审稿人依然认它,而且在SPSS的PROCESS宏输出结果里,Sobel检验被列为默认报告项之一。所以这两个方法不能互相替代,理解Sobel的算法会让你对Bootstrap的改进逻辑认识更深。
3.2 检验统计量的推导逻辑
Sobel检验的统计量长这样:
z = a×b / SE(a×b)
其中a、b是第三步回归得到的路径系数估计值(通常用非标准化系数),SE(a×b)是间接效应的标准误。这个标准误不是直接观测出来的,而是根据Delta方法近似推导的:
SE(a×b) = √(a²×SE_b² + b²×SE_a²)
其中SE_a和SE_b分别是系数a和b的标准误,也就是SPSS回归系数表里的Std. Error那两列。
这个公式的直觉理解方式:间接效应是a和b相乘的结果,它的波动来自两边——a有抽样误差,b也有抽样误差。如果a的绝对值很大,那么b的微小波动会被放大;反过来也一样。公式里“a²乘以SE_b²”就是在度量"b的波动经由a放大后"贡献给乘积的方差,"b²乘以SE_a²"则是另一个方向的贡献。两者加总开根号,就是乘积的标准误。
这是理解Sobel检验的关键,也是它最受批评的地方:它假设a×b在这个标准误下近似服从正态分布。但哪怕a和b各自服从正态分布,它们的乘积也是高度偏态的,尤其在样本量不大时。正态近似不成立,就意味着p值和置信区间的可靠性打折扣。这也是为什么后来越来越多人转向基于重抽样的Bootstrap。
3.3 手算加软件,两条路都走一遍
手算其实很简单,假设我从SPSS回归结果里拿到这样四个数:
- a = 0.518,SE_a = 0.068
- b = 0.387,SE_b = 0.062
先算间接效应:a×b = 0.518 × 0.387 = 0.2005
再算标准误: SE(a×b) = √(0.518² × 0.062² + 0.387² × 0.068²) = √(0.268324 × 0.003844 + 0.149769 × 0.004624) = √(0.001031 + 0.000693) = √0.001724 = 0.0415
最后算z值:z = 0.2005 / 0.0415 = 4.83
这个z值远超1.96的临界值,p值小于0.001,间接效应显著。整个过程在Excel里就能完成,一分钟的事。
软件层面,最省事的是在SPSS里装PROCESS宏,用Model 4做简单中介模型。PROCESS的输出里有一栏专门报告间接效应及其Sobel检验结果,还会给出Bootstrap的置信区间。如果你用R,mediation包里的mediate函数也能给出类似结果;用Mplus更是一句MODEL INDIRECT指令的事。不管用哪个工具,我建议你都拿上面的数字手算一遍做核对,软件是容易出错的,自己心里有数才不会被输出结果带着走。
4. 完整案例:工作压力如何通过工作家庭冲突影响职业倦怠
4.1 数据准备与变量说明
用一个我经常在教学中使用的虚拟案例,变量设计如下:
- X:工作压力,连续变量,量表得分越高压力越大;
- M:工作家庭冲突,连续变量;
- Y:职业倦怠,连续变量。
样本量为320名企业员工,数据清洗后无缺失,三个变量均通过信度检验(Cronbach's α均大于0.8),相关矩阵显示三者两两显著正相关。这里提醒一句:做中介检验之前,先看核心变量的描述统计和相关矩阵,如果X和Y的相关本身不显著,后面即便跑出显著结果也要提高警惕。
4.2 逐步检验的完整输出与解读
三次回归的核心系数整理如下:
| 方程 | 路径 | 非标准化系数 | 标准误 | t值 | p值 |
|---|---|---|---|---|---|
| 方程一 | X→Y (c) | 0.452 | 0.061 | 7.41 | <0.001 |
| 方程二 | X→M (a) | 0.518 | 0.068 | 7.62 | <0.001 |
| 方程三 | M→Y (b) | 0.387 | 0.062 | 6.24 | <0.001 |
| 方程三 | X→Y (c') | 0.252 | 0.065 | 3.88 | <0.001 |
逐条解读:
第一步,总效应c = 0.452,p < 0.001,工作压力对职业倦怠的总影响显著,可以继续。
第二步,a = 0.518,p < 0.001,工作压力显著加剧工作家庭冲突。
第三步,b = 0.387,p < 0.001,控制工作压力后,工作家庭冲突依然显著预测职业倦怠。同时c' = 0.252,p < 0.001,仍然显著。
由于a、b都显著,且c'显著但数值从0.452降到了0.252,结论是:工作家庭冲突在工作压力与职业倦怠之间起部分中介作用。
间接效应为a×b = 0.518 × 0.387 = 0.2005。中介效应占总效应的比例为0.2005 / 0.452 = 44.4%,即工作压力对职业倦怠的影响中,有将近一半是通过工作家庭冲突这条路径实现的。这个比例是论文里很受关注的指标,通常和间接效应一起报告。
4.3 论文里的报告范式
下面给一段可以直接参考的结果描述,这也是我在实际投稿中反复使用的写法:
本研究采用温忠麟等(2004)提出的中介效应检验流程。结果表明:工作压力对职业倦怠的总效应显著(B = 0.452,t = 7.41,p < 0.001);工作压力对工作家庭冲突的效应显著(B = 0.518,t = 7.62,p < 0.001);纳入工作家庭冲突后,工作家庭冲突对职业倦怠的效应显著(B = 0.387,t = 6.24,p < 0.001),而工作压力对职业倦怠的直接效应降至0.252(t = 3.88,p < 0.001),表明工作家庭冲突起部分中介作用。间接效应为0.201,Sobel检验显示z = 4.83(p < 0.001),中介效应占总效应的44.4%。
可以看到,报告的核心要素是四个:三个路径系数各自显著、直接效应和总效应的对比、间接效应数值、Sobel检验或置信区间。把这几个数字写清楚,审稿人基本挑不出毛病。
5. 七个高频坑:中介效应实操中的翻车现场
5.1 总效应不显著不等于没有中介
传统流程要求c显著才继续,但有一种情况会打破这个规矩——遮掩效应。当间接效应a×b和直接效应c'的符号相反时,两者相加可能让总效应c趋近于零而不显著。例如a×b是正的0.2,c'是负的0.2,两者一加,c = 0。
我见过一个真实案例:X对Y的直接效应为正,但X同时通过M对Y产生负的间接效应,总效应被抵消,c不显著。如果机械地按照"c不显著就停止"的流程走,就完全错过了这个真实机制。遇到c不显著时,建议仍然把a、b、c'跑出来看一看,如果a和b显著而c不显著,这本身就是一种有故事的中介效应,值得进一步讨论。
5.2 "完全中介"这个词要慎用
"完全中介"的统计含义只是在这个样本、这个模型设定下,控制M后X对Y的直接效应不显著。它不意味着理论上X真的没有任何其他影响路径,也不意味着你的模型是"完整"的。换一个样本、换一种测量工具、多加两个控制变量,c'的显著性随时可能翻转。
所以我的建议是:即便你跑出来的结果是完全中介,在论文里也尽量写成"工作家庭冲突在其中起中介作用,且加入中介变量后直接效应不再显著",同时报告间接效应的置信区间,把读者的注意力引导到机制强度而非"完全"二字上。
5.3 样本量不足,什么检验都救不了
中介效应在社会科学里往往是弱效应,检验功效本身就偏低。模拟研究通常建议中介检验的样本量不少于200,如果效应量较小,300到500都不过分。样本量不足时,Sobel检验的功效会更差,因为它的正态近似在中小样本里并不理想。这时候Bootstrap的优势就很明显——它不依赖正态性假设。如果你手里只有150个样本,建议以Bootstrap结果为准,Sobel检验的结果作为参考即可。
5.4 方程三的共线性问题
X和M在现实中常常有中高程度的相关,方程三同时放入两者后,共线性会让b的标准误变大,从而影响Sobel检验的稳定性。操作上有个实用技巧:提前查看方程三的VIF值,如果VIF大于5,先考虑对X和M做中心化处理(减去均值),这能缓解非本质的共线性;如果中心化后VIF依然很高,那就要审视M的测量是不是和X过度重合,甚至要考虑变量间的逻辑层级是否设计错了。
5.5 横截面数据不要扯因果
这是审稿人最常挑刺的问题,也是最容易被新手忽视的。中介效应检验用的是回归模型,回归只谈"相关",不谈因果。你用同一次问卷收集的横截面数据跑出"工作压力→工作家庭冲突→职业倦怠",严格来说只能叫作"路径相关",得不出时间先后意义上的因果链。如果你的数据是横截面设计,论文里务必用"间接触发/间接关联"这类措辞,把因果推断的表述留给纵向数据或实验设计。
5.6 间接效应显著不等于中介机制重要
统计显著和实际重要是两回事。在大样本下,一个绝对值很小的间接效应也可能达到统计显著。我建议报告中介效应占总效应的比例,一般低于20%的中介占比在实践意义上就相当有限了。审稿人看到你报比例,会觉得你真正理解了效应的大小而不是只盯着p值。
5.7 区分"Sobel显著"和"置信区间不包含零"
Sobel检验给出的是z统计量和p值,它默认乘积服从正态分布。Bootstrap给出的偏差校正置信区间不依赖这个假设。当两者结论不一致时(比如Sobel的p大于0.05,但Bootstrap置信区间不含0),一般以Bootstrap为准。当年我自己第一次遇到这种不一致时也困惑了很久,后来才明白这正是方法学演进要解决的问题——正态假设在乘积分布上确实太勉强了。
最后说点个人体会。这些年跑中介模型,最大的感悟是:方法只是工具,真正决定论文质量的还是你对自己的变量关系有没有想清楚。逐步检验法帮你看清楚每条路径的细节,Sobel检验给间接效应一个整体的统计判断,Bootstrap则给你更稳健的区间估计。三者之间不是"哪个更对"的竞争关系,而是从不同角度帮你确认同一个机制是否存在。先把逻辑想通,再用工具验证,这个顺序不要颠倒。
本文还有配套的精品资源,点击获取