「控制变量不是越多越好」:一个对撞因子如何在你的回归里凭空造出混杂
【锚点】这一篇只固定一个判断:在观测数据里,多放一个控制变量不等于更干净——如果这个变量是【处理与结果的共同结果】(对撞因子 collider),条件化它会让两个本来独立的变量产生虚假关联。控制变量不是「越多越保守」,是「越多越可能引入选择偏差」。
【显式】先给一个可手算验证的数值推演: - 设两项能力 M(数学)与 V(语言)独立,均 ~ N(0,1)。 - 某选拔性项目录取规则:M + V > 1.5(约前 15%)。 - 在【全体】中,corr(M,V) = 0。 - 在【被录取者】中,corr(M,V) 显著为负(模拟约 −0.4;阈值越高越接近 −1)。 机制一句话:给定 M+V 要过线,M 越高,V 就「必须」越低才能刚好卡线——条件化把独立变成了互斥。
【隐式】翻译成计量语言。设真实因果图:T 与 Y 独立、T→Y 无因果效应;但 T 和 Y 都影响 S(是否进入样本/是否被观测/是否存活)。若你在 S=1 的子样本上跑 Y ~ T,或在全样本上控制 S,你就在对撞因子上条件化,估出一个非零的 T 系数——而真实效应是 0。这就是【选择偏差】与【坏控制 bad control】的同一枚硬币。
【细微】区分两种「控制」: - 前处理控制:T 之前确定的变量,可能是混杂,控制它通常有用(但小心 M-bias)。 - 后处理控制:T 之后、且是 T 结果的变量(如「职业」之于「教育→工资」)。控制它会【吸收掉一部分处理效应】,把总效应切掉一块,甚至因对撞而反转符号。Angrist & Pischke (2009, Mostly Harmless Econometrics) 把这类叫 bad control。 - 判据不是「变量重不重要」,而是「它在因果图里站在 T 的哪一边」。
【极难发现】控制变量制造的偏差,和遗漏变量制造的偏差,方向可以相反、量级可以同阶。你为了「稳健」多加一个控制,可能把 OVB(遗漏变量偏差)换成了 collider bias(对撞偏差),而两者在单一回归里无法区分——只能靠 DAG 先验判定。这也解释了为什么「逐步加控制看系数稳不稳」不是识别策略,是叙事策略。
【流程节点链路】真实结构(T ⊥ Y,T→S←Y) → 在 S=1 上条件化(或控制 S) → 子样本中诱导 T 与 Y 的虚假关联 → 回归估出非零系数 → 误读为「T 对 Y 有因果效应」。起点是独立,终点是伪效应,中间节点【条件化对撞因子】一个都不能省。
【结论】在做任何「加入控制变量后系数变了」的判断前,先画 DAG 问一句:这个变量是 T 的原因、T 的结果,还是 T 和 Y 的共同结果?只有第一类(且无 M-bias)才该进回归。
值得辩论的问题:如果一篇论文报告「控制 X 后效应消失」,而我们无法观测 X 的时序——你会默认 X 是混杂(效应被解释掉)还是对撞(效应被制造/掩盖)?在没有面板或外生冲击时,这个判断是不是本质上不可识别?







0 評論