班主任想弄清楚“学习时间到底如何影响高考成绩”。他翻出全班数据,画了一张影响关系图:学习时间影响知识掌握,知识掌握影响成绩;同时,成绩和面试表现一起决定了谁被名校录取。这张图看似简单,却藏着两个会坑人的角色——中介变量和collider。中介变量是因果链条上的“接力站”,它老老实实地传递效应,但如果你把它当杂音控制掉,真正的因果路径就被拦腰斩断;collider 是两条甚至多条因果路径的“交汇漏斗”,平时它安安静静,可一旦你只盯着漏斗里的人看,两个本不相干的变量会突然冒出虚假的关联,让你得出完全颠倒的结论。这篇文章就用班主任的归因分析作主线,带你认清这两个角色,学会在因果推断中“该控制谁、不该控制谁”。
对 AI 从业者而言,选错控制变量会让模型结论系统性失真,甚至推出相反的商业决策;理解中介与 collider,是做好因果推断、可解释分析与数据归因的底层生存技能。
可视化演示
展示因果图DAG中中介变量传递因果效应的路径分解,以及collider对撞变量条件化后产生虚假关联的机制,直观理解控制变量的选择原则。
本节配有交互动效(进入视口后自动加载,约 3KB)。
中介变量与Collider 中介变量:位于处理到结果路径中间,传递间接因果效应 效应分解:总效应=直接效应+间接效应,控制中介阻断间接路径 对撞偏倚:条件化collider使独立变量产生虚假关联 Total = Direct + Indirect (through M) 理解中介与collider避免选错控制变量
因果图基础
班主任的第一步,不是急着跑回归,而是先画一张“影响地图”。就像给一条河流画流域图:哪个支流汇入哪个干流,箭头方向表示水流方向。他把“学习时间、知识掌握、考试成绩、面试表现、是否录取”画成五个圆圈,用箭头标出谁影响谁。这张图就是因果推断的地基——有向无环图(DAG,Directed Acyclic Graph)。
在 DAG 中,每个圆圈叫节点(node),代表一个变量;每根箭头叫有向边(edge),代表一个直接因果影响。箭尾的节点是父节点,箭头指向的是子节点。沿着箭头方向从一个节点走到另一个节点,就形成一条路径。比如“学习时间→知识掌握→成绩”,是一条包含两段因果的路径。DAG 里的"A"(Acyclic)要求没有环:你不能从某个节点出发,顺着箭头绕一圈又回到它自己,因为真实世界的时间箭头上,原因不能是结果的结果。
DAG 之所以重要,是因为“控制谁、不控制谁”的答案全写在这张图里。箭头画对了,统计分析才可能对;箭头画错了,后面所有结论都是空中楼阁。因果推断的本质,就是在这张地图上识别“哪些路径会传递真实效应,哪些路径会制造虚假关联”。
回到班主任的河流图:他很快发现,这张图里有两条“水路”从学习时间通向成绩——一条直接流过去,一条绕道知识掌握。而“是否录取”这个节点,像一个大湖,同时接收成绩和面试两条支流。这正是后文两个主角登场的舞台。
- 集合 V(节点)$V = \{X, M, Y, S, C\}$,每个节点代表一个随机变量,如“学习时间”“知识掌握”“考试成绩”。
- 集合 E(边)$E \subseteq V \times V$,每条有向边写作 $X \rightarrow M$,表示 $X$ 对 $M$ 有直接因果影响。
- 无环约束$\nexists$ 一条有向回路,即不能存在 $A \rightarrow B \rightarrow \cdots \rightarrow A$ 的闭合路径,保证因果方向不会倒流。
中介变量概念
班主任盯着箭头想:学习时间是怎么让成绩变好的?难道学习时间能隔空改分数?不能。实际上,学习时间先改变“知识掌握”,知识掌握了,成绩才上来。于是“知识掌握”就像一个接力站,稳稳地站在学习时间和成绩中间,把因果效应一段一段传过去。这种位于原因 X 和结果 Y 之间、且处于因果路径上的节点,就叫中介变量(mediator)。
中介变量有两个身份:它是 X 的子节点(被 X 影响),又是 Y 的父节点(影响 Y)。它的存在让 X 对 Y 的影响“穿透”了整体路径。在班主任的图里,M 就是学习时间和成绩之间的中介:学习时间越长 → 知识掌握越多 → 成绩越高。注意,“学习时间→成绩”还同时存在一条不经过 M 的直接路径,这部分对应的是“刷题刷出来的手感、时间投入本身带来的熟练度”。
理解中介变量的关键,是明白“如果把它条件化会怎样”。条件化(conditioning),通俗说就是“把它固定住再看关系”,在回归里就是把它放进模型当控制变量。当你把 M 控制住,X 就无法再通过 M 发力,那条接力路径就被拦腰截断。你本来想测“学习时间对成绩的全部作用”,结果间接效应凭空消失,只剩下直接效应。这就是过度控制的典型伤害。
班主任把这条接力路径用荧光笔标了出来。他隐隐意识到:如果分析成绩的时候“把知识掌握也放进回归”,那就等于把接力站拆了,学习时间对成绩的真实贡献会被严重低估。这个直觉,正是中介效应分解要解决的事。
- 起点 X(原因)$X$ 是原因变量,在本例中是“学习时间”,箭头指向中介。
- 中间站 M(中介变量)$M$ 是“知识掌握”,它先被 $X$ 影响,再去影响 $Y$,处于因果链中间。
- 终点 Y(结果)$Y$ 是“考试成绩”,同时受 $M$ 和 $X$ 的直接影响。
- 整条链的含义$X \rightarrow M \rightarrow Y$ 表示 $X$ 对 $Y$ 的间接影响通道,这是后续效应分解的结构基础。
中介效应分解
班主任想知道:学习时间带来的成绩提升,究竟多少是“真正学会了”(通过知识掌握),多少是“题感熟了”(不经过知识掌握的直接作用)?这就需要对总效应做分解。
我们把 X 对 Y 的总效应记为 $c$。它由两块拼成:直接效应 $c'$(不经过 M 的路径)和间接效应 $a \times b$(经过 M 的路径,其中 $a$ 是 X 对 M 的效应,$b$ 是控制 X 后 M 对 Y 的效应)。经典的中介效应分析用三步回归完成:第一步,$Y$ 对 $X$ 回归,得到总效应 $c$;第二步,$M$ 对 $X$ 回归,得到 $a$;第三步,$Y$ 同时对 $X$ 和 $M$ 回归,得到直接效应 $c'$ 和系数 $b$。于是间接效应等于 $a \times b$,并且满足 $c = c' + a \times b$。
这套分解的逻辑,等价于把一条大河分成两股:一股直接入海,一股先经过水库再入海。你问“修水库对下游水量有多大影响”,得把“水库放水”和“绕过水库的支流”分开算。在 AI 建模里,这种分解常用于归因分析:广告曝光影响了多少购买,其中多少是“曝光直接促单”,多少是“曝光先让用户逛了商品页再下单”。
做完分解,班主任满意地总结:学习时间对成绩的总贡献里,七成是“学会了”,三成是“题感”。但他不知道,真正的坑还在后面——那个被他随手拉进来做筛选的“录取状态”,正准备给他一个惊吓。
- 总效应 c对 $Y = cX + \varepsilon_1$ 回归,$c$ 是 $X$ 每增加一单位时 $Y$ 平均变化的全部量。
- 前半段 a对 $M = aX + \varepsilon_2$ 回归,$a$ 是 $X$ 每增加一单位时 $M$ 平均增加的量。
- 后半段 b 与直接效应 c′对 $Y = c'X + bM + \varepsilon_3$ 回归,控制 $M$ 后 $X$ 的系数 $c'$ 是直接效应,$M$ 的系数 $b$ 是 $M$ 对 $Y$ 的净影响。
- 间接效应合成$a \times b$ 是 $X$ 经 $M$ 传给 $Y$ 的间接量,与直接效应相加恰好等于总效应。
Collider对撞
班主任想进一步分析“面试表现和考试成绩的关系”,但他犯了个顺手的小错误:只看被名校录取的学生。结果他大吃一惊——录取生里,学习时间越长的人,面试表现反而越差!这是怎么回事?难道学习真的会拖累表达?当然不是。问题出在“录取状态”这个变量上。
录取状态 C 同时受到成绩 Y 和面试表现 S 的影响,也就是说,Y 和 S 两条箭头都指向 C。在 DAG 里,这种被两个或多个原因同时指向的节点,叫 collider(对撞变量),名字很形象:两条因果流在这里“对撞”汇合。平时,S 和 Y 互不相干(假设面试运气与考试成绩没有共同原因),它们是独立的。但一旦条件化 C——比如只看被录取的人——独立关系就被打破了,S 和 Y 之间会冒出虚假的负相关,这就是对撞偏差(collider bias)。
直觉上的解释是:录取是个“至少有一头要好”的门槛。成绩好但面试差的人能进来,面试好但成绩差的人也能进来,于是这个群体里天然凑出了一批“此消彼长”的人,看起来就像面试与成绩在互相拆台。经典案例就是“NBA 球员都高,但矮的球员弹跳都极好”——矮是劣势,能进 NBA 必须用弹跳等极端优势弥补。只看录取名单,就等于主动掉进了对撞的陷阱。
班主任吓出一身冷汗:如果不是先画了 DAG,他就要在教研会上宣布“学习时间长损害面试能力”的荒谬结论了。他由此悟出一个道理——筛选数据本身就是一种条件化,而只要筛掉的变量位于对撞位置,筛选后的分析就会自带偏见。这个教训,直接把他领向了下一课:到底该控制谁?
- 原始独立性$S \perp\!\!\!\perp Y$ 表示面试表现与考试成绩在全体考生中相互独立,没有直接或间接的因果通道。
- 条件化后的相关性$S \not\perp\!\!\!\perp Y \mid C$ 表示在给定录取状态 $C$ 的子群体中,$S$ 与 $Y$ 出现统计相关。
- 偏差来源$\text{Corr}(S, Y \mid C=c) \neq \text{Corr}(S, Y)$,条件化对撞节点会打开一条本不存在的虚假路径。
控制变量选择
班主任现在明白,控制变量不是“多多益善”,而是“认准身份”。在估计 X 对 Y 的因果效应时,变量分成三派:
第一派是混杂变量,比如“睡眠时间”:它既影响学习时间(睡好了才学得动),又影响成绩(睡好了脑子清醒)。它会打开一条 X 与 Y 之间的非因果路径,制造假关联,必须控制。第二派是中介变量,比如“知识掌握”,它位于因果路径内部,不能控制,否则切断真实效应。第三派是对撞变量,比如“录取状态”,它被多个原因共同指向,更不能控制,否则打开虚假关联。
判断依据就是 DAG 里的 d-分离(d-separation) 规则:我们要找一组控制变量 Z,使得它阻断所有从 X 到 Y 的“后门路径”(带箭头指向 X 的非因果路径),同时不阻断任何 X 到 Y 的因果路径。用数学语言说,调整集等于后门变量集合去掉中介和对撞。有一个流传很广的口诀:混杂是“拦路贼,要设卡”;中介是“传令兵,别拦截”;对撞是“大漩涡,别靠近”。
班主任把这三派变量写进备忘录,又总结了实践中的三条红线。他决定把这些经验写成一张“避坑清单”贴在工位上——因为同样的坑,在真实业务数据里几乎每天都在发生。
- 后门集合$\text{Backdoor}(X, Y)$ 是那些指向 $X$、且能形成 $X$ 到 $Y$ 非因果路径的混杂变量集合,如睡眠时间。
- 排除中介$M$ 是传递间接效应的节点,放进模型会阻断因果路径,故从调整集中剔除。
- 排除对撞$C$ 是接收多条因果流的下游节点,条件化它会打开虚假关联,故同样剔除。
- 调整后估计因果效应写成 $P(Y \mid do(X)) = \sum_{Z \in \text{Adj}} P(Y \mid X, Z)P(Z)$,对调整集分层加权,得到的才是干净的因果效应。
实践避坑指南
班主任的“避坑清单”第一条:先画 DAG,再选变量。任何因果问题,动手跑回归前先画出变量间的影响关系。很多分析翻车,不是因为统计方法不够高级,而是因为压根没画图,把中介和对撞一股脑塞进回归。第二条:小心数据筛选带来的隐式条件化。你平时用的“成交用户”“留存用户”“活跃用户”这些标签,很可能就是对撞变量——只要分析对象是被筛过的群体,结论就自带偏差。第三条:漏斗分析要区分中介与直接效果。
真实业务里,最经典的例子是广告归因。平台想评估“广告曝光 X 对成交 Y 的效果”,但中间隔着“商品页浏览 M”。如果你把 M 当控制变量放进模型,评估结果就只剩直接效应,广告的真实价值被拦腰砍半。另一个高频坑是用户留存分析:研究“活跃度对付费的影响”时,只分析留存用户,而“留存”恰恰是活跃与付费的共同结果——一个对撞节点。于是你大概率会得出“越活跃的人越不付费”这种反直觉的假象。
判断中介贡献时,可以用间接效应与总效应的比值衡量“走中介的路占比多大”。当直接效应不显著、间接效应显著时,说明效应几乎全靠中介传递,这在归因上意味着“优化中间环节才是杠杆点”。数据工作者最该学会的不是更花哨的模型,而是在动手前问一句:这张图里,谁是传令兵,谁是大漩涡?
至此,班主任的归因分析终于画上句号。他学会了用 DAG 当导航,也认识了两类最会“带偏路”的节点:中介变量像接力站,控制它等于拆桥;collider 像交汇漏斗,条件化它等于打开假关联的闸门。读懂这张图,比多跑一百次回归都重要。
- 分子 间接效应$a \times b$ 是经中介 M 传递的那部分效应,由 X 对 M 的效应 a 乘上 M 对 Y 的效应 b 得出。
- 分母 总效应$c$ 是 X 对 Y 的全部可观测影响,包含直接与间接两部分。
- 占比解读比值接近 1 说明效应几乎完全走中介;接近 0 说明直接效应主导;做优化时应优先投向占比大的那条路径。
AI 应用场景
电商漏斗归因分析
阶段:因果推断与实验评估
解决的问题:传统评估广告效果时,分析师常把“商品页浏览”当控制变量放进回归,导致广告的真实增量被严重低估。AI 归因系统需要区分直接效应与间接效应,避免中介变量污染评估结果。
具体案例:某电商平台评估“开屏广告对新客成交的影响”。业务方误将点击率作为特征加入模型,结果广告的因果效应被低估 40%。改用中介分析框架后,团队识别出“广告曝光→商品页浏览→成交”的中介路径,正确分离出直接促单与浏览引导两类贡献,据此调整预算分配,整体 ROI 提升 25%。
留存用户研究中的对撞偏差
阶段:观察性数据挖掘与画像分析
解决的问题:只分析留存用户会导致“活跃度高付费低”的虚假负相关,因为留存本身是被活跃度与付费能力共同影响的对撞变量。AI 画像模型如果直接在这类样本上训练,会学到颠倒的用户规律。
具体案例:某内容 App 发现,留存用户里“浏览时长越长的人,付费意愿越低”。团队起初怀疑是时长抑制付费,差点改版砍掉沉浸式内容。重新绘制 DAG 后发现,“是否留存”由使用兴趣与付费能力共同决定,筛选留存用户等于条件化对撞,虚假负相关由此而来。修正采样偏差后,原本的负相关消失,团队避免了一次错误的产品决策。
医学与流行病学研究设计
阶段:研究设计与偏差控制
解决的问题:医院数据天然只包含住院患者,而“是否住院”受病情严重度与就医意愿共同影响,属于对撞变量。用住院患者做相关性分析,会出现“步行多的人住院更久”这类悖论。
具体案例:某团队用电子病历研究“运动量对康复速度的影响”,初步结果令人困惑:运动越多,住院时间越长。复查 DAG 后发现,“是否住院”同时受基础健康水平和就医积极性影响;只有病情较重或特别积极的人才会住院,运动量高者往往是基础健康差才被迫运动。按全人群抽样重新设计后,结论恢复为运动促进康复。
Python 演示
"""中介效应分析与 Collider 偏差演示"""import numpy as np def linear_fit(X, y): """最小二乘回归,返回系数,首项为截距""" A = np.column_stack([np.ones(len(X)), X]) coefs, _, _, _ = np.linalg.lstsq(A, y, rcond=None) return coefs def analyze_mediation(study_time, mastery, score): """三步法分解中介效应:总效应 c、直接效应 c'、间接效应 a*b""" c_total = linear_fit(study_time, score)[1] # Y 对 X 回归 a_coef = linear_fit(study_time, mastery)[1] # M 对 X 回归 coefs = linear_fit(np.column_stack([study_time, mastery]), score) c_direct, b_coef = coefs[1], coefs[2] # Y 对 X+M 回归 indirect = a_coef * b_coef return { "total": c_total, "direct": c_direct, "indirect": indirect, "indirect_ratio": indirect / c_total } def collider_bias_demo(seed=42): """构造能力与运气的对撞结构,对比全量与条件化后的相关""" rng = np.random.default_rng(seed) ability = rng.normal(size=3000) luck = rng.normal(size=3000) score = ability + luck # 对撞变量 hired = score > np.median(score) # 只看被录取者 corr_all = np.corrcoef(ability, luck)[0, 1] corr_hired = np.corrcoef(ability[hired], luck[hired])[0, 1] return corr_all, corr_hired if __name__ == "__main__": rng = np.random.default_rng(7) n = 800 study = rng.normal(size=n) mastery = 0.6 * study + rng.normal(size=n) * 0.8 score = 0.3 * study + 0.5 * mastery + rng.normal(size=n) * 0.6 result = analyze_mediation(study, mastery, score) for key, val in result.items(): print(f"{key}: {val:.4f}") corr_all, corr_hired = collider_bias_demo() print(f"全量数据中能力与运气的相关: {corr_all:.4f}") print(f"只看被录取者后的相关: {corr_hired:.4f}")
c_total = linear_fit(study_time, score)[1]对 Y 只回归 X,得到总效应 c,对应公式 $Y = cX$。a_coef = linear_fit(study_time, mastery)[1]对 M 回归 X,得到前半段系数 a。c_direct, b_coef = coefs[1], coefs[2]同时回归 X 和 M,拆出直接效应 c' 与后半段系数 b。"indirect": indirect间接效应等于 a×b,与直接效应相加应近似等于总效应。hired = score > np.median(score)构造“是否录取”的对撞筛选,score 由能力与运气相加而成。corr_hired = np.corrcoef(ability[hired], luck[hired])[0, 1]只看被录取者时,能力与运气出现明显的负相关,直观展示 collider bias。
常见误区
误区既然回归里要控制混杂,那把能想到的变量全放进去一定更保险。我把知识掌握、录取状态、睡眠时间全部加进模型,结果总该没问题吧?
正解这是把“控制”理解为“越多越好”的典型误区。回归模型里每多一个变量,就多一次条件化。控制中介 M 会切断 X→M→Y 的间接效应,控制对撞 C 会打开 S 与 Y 的虚假关联。只有阻断后门路径的混杂变量才该入模型。放错变量比少放变量更危险,因为它会系统性地扭曲效应估计。
为何常见:传统统计教学中强调“控制混杂、减少遗漏变量偏差”,很多人把这句话线性外推成“控制一切”,忽略了 DAG 中不同位置的变量在条件化后有完全相反的后果。
误区中介变量学习时间和成绩都相关,那它就是混杂啊,当然要控制。我把“知识掌握”放进回归做校正,这很严谨。
正解混杂的定义是“同时影响 X 和 Y 且打开非因果路径的变量”,而中介变量位于 X 到 Y 的因果路径内部,它是因果的一部分,不是干扰项。控制中介等于人为截断因果传递,你估计的只是直接效应,却误以为是总效应。判断变量身份的标尺是它在 DAG 中的位置,而不是它与 X、Y 的相关性。
为何常见:人们习惯用“与结果和原因都相关”这个统计标准识别混杂,但中介恰好也满足这个相关特征,位置信息被忽略后就产生了混淆。
误区对撞偏差听起来很理论,我日常分析的数据都是现成报表,哪来什么 collider?这个知识点看看就好。
正解collider 在真实业务中无处不在。凡是“被筛选过的样本”都在隐式条件化某个对撞变量:成交用户、留存用户、VIP 用户、被推荐系统选中曝光的商品……它们的产生机制都受多个因素共同影响,只要分析限定在这些子群体里,对撞偏差就自动生效。学会画 DAG 后你会发现,很多“反直觉的业务结论”都是 collider bias 的杰作。
为何常见:教科书常举学术研究的例子,而业务数据里“筛选”太自然,人们不会把“只看留存用户”理解成一种条件化操作,因此对撞偏差悄然潜入日常分析。
误区既然我搞不清哪些变量是混杂,那就先找一个“下游综合指标”把它控制住,比如用“用户质量分”做校正,这总能吸收所有混杂吧?
正解恰好相反。如果这个“下游指标”是被多个原因共同决定的(比如用户质量分同时受真实需求和付费意愿影响),它就处在一个对撞位置。控制它不会“吸收”混杂,反而会在原本独立的变量之间打开新的虚假通道,让偏差加倍。正确做法是回到 DAG,找到指向 X 的后门路径并阻断它们,而不是找一个万能下游变量一控了之。
为何常见:人们天然觉得“结果指标包含了丰富信息”,控制它能代表“综合调整”。但 DAG 告诉我们,信息的丰富不等于位置的正确,下游对撞节点的条件化是制造偏差的源头之一。
面试题
Q1. 在因果图 X→Y 中,箭头表示什么?
- A.X与Y在数值上完全相等
- B.X对Y存在直接的因果影响← 正确答案
- C.Y对X存在直接的因果影响
- D.X与Y之间只存在统计相关
答案:B。有向边从箭尾的因果指向箭头的果,X→Y 表示 X 是原因、Y 是结果。A 错误,箭头不表示数值相等;C 方向反了;D 漏掉了因果方向,相关只是表象。箭头在 DAG 中是因果方向的唯一凭证,就像河流图中箭头永远指向下游。
Q2. 为估计学习时间对成绩的因果效应,把中介变量“知识掌握”放入回归后会发生什么?
- A.总效应被完整准确地保留
- B.间接效应被阻断只剩直接效应← 正确答案
- C.对撞偏差被自动消除
- D.估计结果没有任何变化
答案:B。知识掌握位于 X→M→Y 的因果链上,控制它等于在接力站拦下传令兵,学习时间再也无法通过知识掌握影响成绩,间接效应消失,只能估到直接效应。A 错,总效应会被低估;C 错,控制中介与对撞无关;D 错,模型已经改变了估计对象。这正是“过度控制”的典型后果。
Q3. 在路径 Z→C←W 中,节点 C 被称为什么?
- A.中介变量
- B.对撞变量← 正确答案
- C.混杂变量
- D.工具变量
答案:B。C 同时被 Z 和 W 两个原因指向,两条因果流在这里汇合对撞,因此叫 collider(对撞变量)。中介变量位于因果链中间、只有一个父节点一个子节点;混杂变量是打开后门路径的变量;工具变量与结果无关。记住“多箭指向一个节点”就是对撞结构的图形签。
Q4. 只看名校录取学生时,发现“学习时间长的人面试表现差”,最可能的原因是什么?
- A.长期学习确实损害了表达能力
- B.面试好的人根本不需要长时间学习
- C.条件化对撞变量产生了虚假负相关← 正确答案
- D.抽样太少导致的随机波动
答案:C。录取状态同时受成绩和面试影响,是典型对撞变量。只分析录取生等于条件化对撞,成绩与面试出现虚假负相关:成绩好但面试差的人能入学,面试好但成绩差的人也能入学,凑在一起形成“互补假象”。A、B 都是把虚假关联当因果;D 在样本量充足时站不住脚。
Q5. 估计 X 对 Y 的因果效应时,以下哪些变量不应放入回归模型?
- A.同时影响X和Y的混杂变量
- B.位于X到Y因果路径上的中介变量← 正确答案
- C.被X和Y共同影响的对撞变量← 正确答案
- D.与X和Y都无关的随机噪声变量
答案:BC。中介变量放入模型会阻断真实因果路径,对撞变量放入模型会打开虚假关联,故 B、C 都该排除。混杂变量 A 必须控制,否则存在后门偏差;D 虽然控制后无害也无益,但不属于“不应放入”的对象,且可能降低估计效率。选择控制变量的核心依据是节点在 DAG 中的位置。
Q6. 若 X 与 Y 原本独立,且结构为 X→C←Y,那么给定 C 之后 X 与 Y 的关系是?
- A.仍然保持完全独立
- B.可能出现虚假的统计相关← 正确答案
- C.必然产生真实的因果关系
- D.二者关系变得无法估计
答案:B。C 是对撞变量,条件化 C 会打开 X 与 Y 之间的虚假通道,使原本独立的变量产生相关。A 错,条件化对撞恰恰打破独立;C 错,这是相关而不是因果;D 错,估计仍可行但结果有偏。这与中介路径相反:条件化中介是“关”路径,条件化对撞是“开”路径。
Q7. 中介效应分解中,总效应 c、直接效应 c′、间接效应 a×b 的正确关系是?
- A.c 等于 c′ 加 a×b← 正确答案
- B.c 等于 c′ 减 a×b
- C.c×c′ 等于 a×b
- D.c 等于 a×b 除以 c′
答案:A。总效应拆成不经过中介的直接效应与经过中介的间接效应,因此 c = c′ + a×b。B 符号反了;C、D 的运算关系没有因果含义。这个恒等式就是中介分析的分账公式,好比一条大河的总水量等于直流水加绕道水库的水量。
Q8. 用 DAG 选择调整变量时,正确的做法包括哪些?
- A.阻断所有指向X的非因果后门路径← 正确答案
- B.保留从X到Y的因果路径不被切断← 正确答案
- C.条件化对撞节点以增强统计显著性
- D.尽量纳入中介变量以控制路径
答案:AB。调整的目标是让 X→Y 的因果通道畅通、同时掐断所有后门虚假通道,A、B 是核心准则。C 错误,条件化对撞会打开虚假关联,显著性是虚假的;D 错误,控制中介会阻断因果路径。简单说:堵住不该通的,放行该通的。
Q9. 在因果图 DAG 中,路径“学习时间→知识掌握→成绩”属于哪种结构?
- A.对撞结构
- B.链式结构← 正确答案
- C.分叉结构
- D.循环结构
答案:B。三个节点排成一条直线,中间节点知识掌握既是父节点又是子节点,这是链式结构,正是中介变量的家。对撞结构是多箭汇入一点,分叉结构是一点分出多箭,循环结构在 DAG 中不允许出现。链式路径意味着效应可以沿箭头逐段传递。
Q10. 以下哪些做法可能触发对撞偏差?
- A.只分析成交用户来评估渠道价值← 正确答案
- B.只看被录取学生来研究背景与成绩← 正确答案
- C.在全量随机抽样中做问卷调查
- D.把漏斗中间步骤点击率当控制变量← 正确答案
答案:ABD。成交用户、被录取学生都是“被筛选出的子群体”,筛选变量本身由多个原因共同决定,属于条件化对撞;漏斗中间步骤点击率一般处在曝光到成交的中介路径上,作为控制变量也会扭曲估计。C 是全量随机抽样,不会引入对撞偏差。识别这类坑的核心是问一句:这个子群体的“入选资格”是由哪些因素共同决定的?