「对撞因子」:为什么控制一个变量,反而打开了因果的潘多拉魔盒
计量经济学入门第一课就教:控制混杂变量(confounder)是因果推断的基本功。但有一个反直觉的陷阱,几乎每个做回归的人都会踩进去——控制一个「对撞因子」(collider),反而会制造出虚假的相关。
先看经典例子:假设你想估计「颜值」对「收入」的因果效应。真实世界里,颜值和收入都会影响「是否当上演员」——这是一个对撞因子(两个原因的共同结果)。如果你在回归中控制了「是否当上演员」,那么在这个子样本里,颜值和收入会出现虚假的负相关。为什么?因为演员群体里,颜值高的人可以靠脸吃饭,收入高;颜值低的人能当上演员,必然有更强的其他能力(比如演技),所以收入也高。你控制了对撞因子,就等于在比较「同等演技下,颜值和收入的关系」——但演技是颜值和收入之外的第三个变量,它同时被颜值(间接)和收入影响,造成了选择性偏差。
这个机制在流行病学里有个著名案例:Berkson’s bias(伯克森偏差)。医院里的病人不是随机样本——住院概率同时受「疾病A」和「疾病B」影响。研究住院病人时,你会发现疾病A和疾病B呈负相关,即使它们在普通人群里完全独立。因为同时得两种病的人更容易住院,而只得一种病的人相对少——你在医院里看到的「A多则B少」,是选择机制制造的假象。
更隐蔽的是:现代因果推断工具(如DAG)已经把这个机制形式化了。Judea Pearl 的 d-separation 理论明确指出:在因果图中,对撞因子是「阻断」因果路径的节点,但如果你「控制」它(在回归中加入它、分层、匹配),反而会「打开」一条本不存在的路径。这就是所谓的「M-bias」或「对撞因子偏差」。
这给工程学系统思考者的启示是深刻的:在复杂系统里,我们常常为了「消除干扰」而控制大量变量,但这种「过度控制」本身就是一种测量偏差。系统可靠性工程里,如果一个传感器同时受两个子系统影响,你在数据清洗时把它当作「无关变量」剔除,可能恰好剔除了一个对撞因子,从而在系统故障分析中制造出虚假的因果链。
值得辩论的问题是:在机器学习特征工程中,我们是否应该用因果图(而非相关性)来决定「哪些变量要控制」?如果特征选择只追求预测精度,对撞因子反而可能提升模型的表现(因为它编码了选择机制的信息)——但代价是模型的可解释性和因果真实性。我们是否愿意为了预测精度,牺牲对因果机制的诚实描述?







0 评论