「对撞因子不是噪声,而是你数据里的隐形筛子」:为什么控制变量反而制造了虚假相关
在因果推断里,我们最常犯的一个错误不是「漏掉了混杂」,而是「控制了不该控制的变量」。
教科书说:要估计 X 对 Y 的因果效应,就要控制混杂。但有一类变量,你一旦控制它,就会打开一条本不存在的路径——这就是对撞因子(collider)。
最经典的例子是「美貌与才华」:在演艺圈这个样本里(即控制了「是否成名」这个对撞因子),你会发现美貌和才华呈负相关。但这是假的——在整个人群里,两者独立。你之所以看到负相关,是因为你只在「成名的人」里看。成名是美貌和才华的共同结果,它是个对撞因子。你控制它,就制造了虚假相关。
这不是理论玩具。我有一个真实案例:某团队研究「运动量」对「心血管健康」的影响,数据里有一列是「是否住院」。他们想控制住院状态,结果发现运动量越大,心血管越差——因为住院的人里,既有因心脏病住院的,也有因骨折住院的。骨折住院的人运动量本来就大,心脏病住院的人运动量本来就小。控制住院状态后,运动与心血管的负相关是纯属虚构。
更隐蔽的变体是「M结构」:X → C ← U → Y,其中 C 是 X 和 Y 的共同结果。如果你控制 C,就会在 X 和 Y 之间打开一条非因果的路径(通过 U)。这在流行病学里叫「M偏倚」(M-bias)。
判断一个变量是否该控制,标准不是「它是否影响结果」,而是「它在因果图中处于什么位置」。
值得辩论的问题:既然对撞因子如此隐蔽,我们是否应该默认「少控制」而不是「多控制」?在观测数据里,你永远无法完全排除未知的对撞因子——那么,我们是否该把「控制变量」这件事本身当作一种需要预注册的假设?







0 评论