「控制变量」不是「消除混淆」:Table 2 谬误——同一张回归表里,四个系数有四种因果含义
【锚点】这一篇只钉一个判断:一张多变量回归表里,每个系数的因果含义都不同;把它们都读成「某变量对结局的效应」,是方法论上最昂贵的一次范畴错误。
【显式】Westreich & Greenland 在 2013 年给这个错误起了名字:Table 2 Fallacy(Am J Epidemiol 177(4):292–298)。他们的观察很朴素:论文的「Table 2」习惯把主暴露和一堆协变量的系数并排呈现,读者(和不少作者)默认每个系数都是「该变量对结局的效应」。这个默认是错的。
【隐式】为什么错?因为一个多变量模型只估计「条件关联」,而条件关联的因果解释取决于变量在 DAG 里的位置。设 X 是暴露、Y 是结局、C 是 X 与 Y 的共同原因(混淆)、M 是 X 的后果且影响 Y(中介)。同一个模型里: - X 的系数若【未调整 M】,读作 X 对 Y 的【总效应】; - X 的系数若【调整了 M】,读作【直接效应】——它把经过 M 的那条通路从账上划掉了; - C 的系数(C 不受 X 影响)在无未测混淆等假设下,可以读作 C 对 Y 的效应; - 若某个「协变量」其实是 X 的后果(中介或碰撞点),它的系数【没有干净的因果解释】——调整它是在改变 estimand,不是在「控制噪音」。
【细微】Table 2 谬误的隐蔽之处在于:这四种系数在软件输出里长得一模一样,都是「Estimate / SE / p」。是 estimand 不同,不是数字不同。
【极难发现】更硬的一层:如果被调整的变量是【碰撞点】(collider,X 与 Y 的共同后果),调整它不只改变 estimand,还会【凭空制造】X 与 Y 的关联。经典例子是 Berkson (1946) 的入院偏倚。设疾病 A、B 在人群中独立,各 10%;入院条件是「患 A 或患 B」。则 P(入院)=1−0.9×0.9=0.19。在入院者中: - P(A|入院)=0.10/0.19≈0.526,P(B|入院)≈0.526; - P(A∩B|入院)=0.01/0.19≈0.053。 乘积 0.526×0.526≈0.277,远大于实际 0.053。两个独立的病,在「入院」这个碰撞点上被压成了强负相关。
【隐式】法学里这个结构到处都是。你观测到的不是「所有潜在纠纷」,而是「走到判决的纠纷」——而「走到判决」同时被「原告有理」和「被告抗辩强」推动。于是判决样本里,案由强度与抗辩强度会呈现虚假的负相关。这不是数据脏,是【选择在结局上】。
【细微】回到 Table 2 与法庭:歧视案里的 but-for 因果问的是「若无歧视,此人是否会被解雇」——这是 X→Y 的【总效应】。被告律师说「我们控制了绩效评分」,而绩效评分是歧视的下游(中介)。调整中介得到的直接效应,把「因投诉/被差评而遭报复」这条通路从损害里删掉了。这不是统计技术分歧,是【estimand 选择分歧】:法学的因果问题先于统计的估计问题。
【流程节点链路】法律问题「若无歧视,此人是否会被解雇」 → 把 estimand 定为 X→Y 的总效应 → 画 DAG,区分混淆集与中介集 → 选择不调整中介的模型(或显式做中介分解) → 报告总效应并声明调整集 → 结论:只有这条链走完,回归系数才配得上「but-for」这个词。
【锚点】所以「控制变量」这个说法本身就有误导性:它暗示你在消除噪音,实际上你在【重新定义你在问的问题】。每加一个协变量,先问一句:它在 DAG 的哪一层?
【可辩论的问题】如果法庭或期刊要求「控制所有可观测变量」,这在因果上等于什么?——等于要求你估计一个条件于中介与碰撞点的系数,再把它当总效应用。这是更严谨,还是把 estimand 弄丢了的仪式?你怎么看?






0 Comments