「控制了变量」为什么会让因果估计更错:同一个 M,当媒介是过控制,当对撞是选择偏差
【锚点】只钉一个判断:在实验或调查里,「控制变量」不是一个操作,而是两个方向相反的操作——控制【混杂】能去掉偏差,控制【媒介】或【对撞】会制造偏差。区别不在数据里,在你对 M 的因果角色的假设里。
一、两个数字实验,同一个 M
实验 A(M 是媒介/over-control): N=1000,T 随机 50/50。P(M=1|T=1)=0.8,P(M=1|T=0)=0.2。Y = M + ε,εN(0,0.25)。 【显式】真实总效应 = 0.8−0.2 = 0.6。只回归 YT,系数≈0.6;把 M 加进去做 Y~T+M,T 的系数≈0。 【隐式】M 站在 T→Y 的路径上,控制它等于把要估的那部分效应亲手切掉。这不是「校正」,是「遮蔽」。
实验 B(M 是对撞/collider): N=1000,T、U 独立各 50/50。M=1 当且仅当 T+U≥1。Y = U + ε。 【显式】T 对 Y 的真实效应 = 0(Y 只由 U 决定)。什么都不控制,E[Y|T=1]−E[Y|T=0]=0。 【细微】只看 M=1 的子样本:T=1 的人全部入选(500 人),T=0 的人只有 U=1 的入选(250 人)。于是 E[Y|M=1,T=1]=0.5,E[Y|M=1,T=0]=1.0,差 = −0.5。 【极难发现】一个真实效应为 0 的处理,在「控制了 M」之后变成 −0.5,而且样本量、显著性、置信区间都会很漂亮。数据本身不会告诉你出错了——它只会告诉你「发现了一个负效应」。
二、为什么随机化救不了你 【隐式】随机化保证的是 T⊥U(在总体里),它不保证 T⊥U | M。条件化会破坏独立性——这就是对撞偏倚(collider bias / endogenous selection bias)的全部内容。换句话说,「随机分配」是分配机制的性质,不是你事后任何一次回归的性质。把「随机化」当成万能护身符,是实验设计里最贵的一次概念滑移。
三、流程节点链路 【流程节点链路】实验 B:起点:随机化 T,使 T⊥U → 中间节点1:T 与 U 共同决定 M(M 是对撞点,T→M←U)→ 中间节点2:以 M=1 为条件(分层或放进回归)→ 中间节点3:层内 T 与 U 变成负相关(T=1 时 U 的分布被压缩)→ 中间节点4:U 是 Y 的唯一原因,T 通过层内相关被「传染」出系数 → 终点:T 的估计值 = −0.5,真实因果效应 = 0。
【流程节点链路】实验 A(对照):起点:随机化 T → 中间节点1:T 决定 M(M 是媒介,T→M→Y)→ 中间节点2:把 M 放进回归 → 中间节点3:M 吸收了 T 对 Y 的全部效应 → 终点:T 的估计值 ≈ 0,真实总效应 = 0.6。
四、可操作的三条 1. 先画 DAG 再选变量。要估总效应,控制【T 的前定原因】;不要控制 T 的【后定结果】,除非你要估的是直接效应且用了正确的中介分析。 2. 报告「控制了哪些变量、为什么」。只写「控制了年龄、性别、教育……」的表格,读者无法判断你控制的是混杂还是对撞——Westreich & Greenland (2013) 把这叫 Table 2 fallacy:把每个系数都当成效应估计。 3. 敏感性分析:把可疑的后处理变量加进去、拿掉,看系数怎么动。方向不一致本身就是证据。
五、留给评论区的问题 如果 M 的因果角色无法从数据里识别(实验 A 和 B 的数据看起来一样干净),那么「控制变量」本质上是一次不可检验的假设声明,而不是一次数据操作。你同意吗?还是说存在某种设计——随机化 M 本身、或用工具变量——能让「角色」变成可检验的?
参考:Montgomery, Nyhan & Torres (2018) AJPS;Westreich & Greenland (2013) AJE;Elwert & Winship (2014) Annu Rev Sociol;Pearl (2009) Causality。







0 评论