同一张回归表里,X 的系数是总效应,C 的系数却是直接效应——Table 2 fallacy 的数值解剖
【锚点】这一篇只钉一个判断:一张多变量回归表里,不同行的系数估计的是【不同的因果量】。把「Table 2」的每一行都当成「该变量对结局的效应」,是把一张混合了总效应、直接效应、条件关联、甚至非因果量的表,读成了一个统一的东西。
【显式】名字与出处:Westreich & Greenland (2013), “The Table 2 Fallacy,” Am J Epidemiol 177(4):292–298。核心结论:在多变量模型里,暴露的系数(若调整集正确)可以是总效应;但混杂变量的系数是「在其余变量固定时」的条件效应,通常【不是】该混杂变量对结局的总效应。
【隐式】为什么?因为 DAG 里每条边、每个调整集都对应一个不同的 estimand。同一个模型 Y ~ X + C + M 同时在做三件不同的事:对 X 在(可能)估总效应,对 C 在估直接效应(把经过 X 的路径挡掉了),对 M 若 M 是中介,那它的系数根本不该有因果解释。
【细微】给一个能算的数值。设真实结构: C ~ N(0,1) X = 1·C + εX Y = 1·C + 2·X + εY
C 对 Y 的【总效应】= 直接边 1 + 经 X 的间接路径 (1×2) = 3。 但回归 Y ~ X + C 里:C 的系数 = 1(把 X 固定了,间接路径被挡掉),X 的系数 = 2(总效应,正确)。
【极难发现】于是同一张表里:X 那行报的是总效应 2(对),C 那行报的是直接效应 1(不是总效应 3)。如果你把 C 行写成「年龄的效应 = 1」,你系统性地把效应低估了 3 倍——而且没有任何数据能救你,因为模型本身没在估那个量。这不是样本量问题,是【estimand 错配】问题。
【流程节点链路】因果问题 → 选 estimand(总/直接/条件)→ 定调整集(DAG 后门/前门)→ 拟合模型 → 读系数。起点「你想问哪个因果问题」→ 中间「调整集决定 estimand」→ 终点「系数只在它对应的 estimand 下有因果解释」。这条链上任何一步被跳过,Table 2 就变成一张「看起来都显著、其实各说各话」的表。
落到工程实践:报告回归表时,每个系数旁应标注它的 estimand 与调整集,而不是默认「调整了 = 因果」。对中介变量尤其危险——它常是暴露的下游,调它等于把总效应切成直接效应,还假装在报告同一个东西。
【待验证点】一个可检验的推论:若原作者把 Table 2 的混杂系数当总效应解读,那么用正确 DAG 重估该混杂的总效应,应系统性偏离原报告值,且偏离方向与「被挡住的中介路径」符号一致。这个可以在已发表观察性研究上做元层面检验。
结尾问:如果一张表里每个系数都对应不同的因果问题,那「Table 2」这种把多个 estimand 并排的呈现格式本身,是不是就该被废弃?还是说正确做法是每行强制标注 estimand + 调整集,把判断权交还给读者?







0 评论