一张回归表不是一份判决书:Table 2 谬误与「每个系数都在回答不同的问题」
【锚点】这一篇只钉一件事:多变量回归表里,每一个系数都是对【不同因果问题】的估计,各自需要【不同的识别假设】。把整张表读成「X 对 Y 的效应」「C 对 Y 的效应」,是 Westreich 与 Greenland (2013) 命名的【Table 2 谬误】。
【显式】Westreich D, Greenland S. “The Table 2 Fallacy: Presenting and Interpreting Confounder and Modifier Coefficients.” American Journal of Epidemiology, 2013;177(4):292–298.
先看机制。设一个最简单的线性结构模型(无交互):C 是混杂(如基线严重度),X 是处理,M 是处理后中介,Y 是结局。DAG:C→X,C→Y,X→M,X→Y,M→Y。
结构方程(系数是我编的,但结构是真的): X = 1.0·C + εX M = 0.5·X + εM Y = 0.2·X + 0.6·M + 0.3·C + εY
于是:X 对 Y 的【总效应】= 0.2 + 0.6×0.5 = 0.5;X 的【直接效应】(M 固定)= 0.2;经 M 的【间接效应】= 0.3。
现在做三次回归: 1. Y ~ X(不调整):C 混杂,系数有偏,既不是 0.5 也不是 0.2。 2. Y ~ X + C(调混杂、不调中介):X 系数 = 0.5,这是【总效应】。对。 3. Y ~ X + M + C(把中介也塞进去):X 系数 = 0.2,这是【直接效应】。
问题来了:很多论文报告的是第 3 个模型,却把 X 的系数(0.2)写成「X 的效应」。它其实只是直接效应,比总效应(0.5)少了 60%。这不是数值错误,是【estimand 与问题不匹配】——你问的是「处理总共造成多少改变」,答的却是「把中介按住之后还剩多少」。
更隐蔽的是 C 的系数。在第 3 个模型里,C 的系数 = 0.3,这是 C 不经过 X、M 的【直接效应】。C 的【总效应】= 0.3 + 1.0×(0.2 + 0.6×0.5) = 0.8。把 0.3 写成「年龄的效应」,等于把 0.8 说成 0.3。
【隐式】这就是 Table 2 谬误的结构:一张表里,暴露系数、混杂系数、中介系数,分别对应总效应、直接效应、以及「根本不是效应」的冗余参数(nuisance parameter)。它们不是同一个 estimand 的不同估计,而是不同 estimand 的估计。
【流程节点链路】(做任何系数解读前必须走完,一个节点都不能省): 提出因果问题(总效应?直接效应?) → 画 DAG 判定 C 是混杂、M 是中介还是对撞 → 依据问题选调整集(总效应调 C、不调 M;直接效应才调 M) → 写出对应的 estimand → 估计 → 解读时声明「这是哪个效应」。 跳过任何一步,系数就会被读成它不负责回答的问题。
【极难发现】法学上的对应物:侵权法里「事实因果」(but-for)与「法律因果」(proximate cause)是两个问题,判决书必须分别回答。回归表就是一份同时回答十几个问题、却不标注「这一栏回答的是哪一问」的证词。Table 2 谬误不是统计错误,是【问题与答案的错配】——和把「若无」测试的答案拿去回答「近因」是同一类错误。
【细微】一个可操作的诊断:读到「调整了 X、M、C 后,X 的系数为 β」时,先问一句——M 是不是 X 的下游?若是,这个 β 是直接效应,不是总效应;论文若声称在讲「X 的影响」,就已经偷换了 estimand。
结尾问题:当一张表里 12 个系数各自对应 12 个不同的因果问题、12 套识别假设时,读者凭什么相信其中任何一个?反过来——一篇论文如果只报告一个系数、并把它对应的那个问题写清楚,它是不是反而更诚实?






0 Comments