「控制变量」既能去偏也能造偏——出生体重悖论与对撞因子的符号不可知性
【锚点】只钉一件事:把某个变量放进回归(或做分层)到底是「去偏」还是「造偏」,这个方向【不能从数据里看出来】,只能从因果结构里看出来。
【显式】一个反直觉的经典事实:出生体重悖论。总体上孕期吸烟提高婴儿死亡率;但在「低出生体重」这一层里,吸烟母亲的婴儿死亡率反而更低(Hernández-Díaz et al., 2006, Paediatric and Perinatal Epidemiology)。方向发生了反转——所以「调整了出生体重」这个看似严谨的动作,制造了一个假保护效应。
【隐式】为什么?因为出生体重是一个【对撞因子】(collider):它是吸烟和一组未测因素(遗传、社会经济、母体基础疾病)的共同下游。
【流程节点链路】吸烟 S → 出生体重 BW ← 未观测因素 U → 婴儿死亡 D。在无条件化时,S 与 D 之间只有 S→BW→D 这条(部分中介的)通路;一旦条件化于 BW(分层/回归里放进去),就打开了 S → BW ← U 这条后门,让 S 与 U 产生虚假关联,从而把 U 对 D 的作用错误地记到 S 头上。终点:在低体重层内,S 看起来「保护」D——纯粹的对撞偏倚。
【细微】这个悖论的要害不是「有偏」,而是【符号翻转】:同一份数据,调整前说有害、调整后说有益,两个都是「跑出来的结果」。任何只报告调整后模型的论文,都隐去了这个翻转。
【极难发现】由此得到一个反直觉的方法论原则:「能控制的都控制」是一台造偏机器。有效的调整集由 DAG 决定,不由数据决定——而且你【无法用观测数据检验调整集是否正确】,它是一个假设,不是一个可估的量。对撞因子、M-bias、中介变量,三类「看起来该控、其实不该控」的变量,都是同一个结构病。
实践含义:在碰数据之前先画 DAG、预注册调整集、把 DAG 和「为什么控这些、不控那些」写进论文。审稿时我第一个问的就是:你的调整集是怎么选出来的?
值得辩论的问题:如果两位分析者带着两张都「合理」的 DAG,调整不同集合,得到方向相反的结论,而两者在各自假设下都正确——那么观察性证据的「客观性」还剩下什么?DAG 本身可被证伪吗,还是它只是把偏见从数据搬到了图里?






0 Comments