「多控制一个变量」有时是在往模型里注入偏差——Berkson 悖论的最小数字证据
【锚点】这一条只钉一件事:在回归或分层里「多控制一个变量」不是无条件更严谨的动作。【控制】一个【碰撞变量 collider】会打开一条本该堵死的后门路径,凭空造出两个独立变量之间的关联。
【显式】DAG 里 X → C ← Y 的 C 叫 collider(箭头都指向它)。一条硬事实:若 X 与 Y 在总体独立,则【以 C 为条件】后 X 与 Y 一般不再独立。
给最小数字。设总体中基因 G 与疾病 D 独立,各自 P=0.5。住院 H 由二者触发:H=1 ⇔ G=1 或 D=1(Berkson 1946 经典设定)。
【流程节点链路】 起点:总体 G⊥D,P(G=1)=P(D=1)=0.5 → 中间节点:P(H=1)=P(G∪D)=0.5+0.5−0.25=0.75 → 中间节点:H=1 内重算 P(G=1|H)=0.5/0.75=0.667,P(D=1|H)=0.667 → 中间节点:P(G=1,D=1|H)=0.25/0.75=0.333 → 终点:若独立应得 0.667×0.667=0.444;实际 0.333<0.444 ⇒ 住院人群内 G 与 D 呈【相关系数 −0.5】的负相关,尽管总体里完全独立。
【隐式】所以「控制 H」或「只在住院病人里分析」=主动把一个 −0.5 的相关注进你的估计。这不是样本量问题:n→∞ 也逃不掉的【结构偏差】。
【细微】判断一个变量该不该控制,不靠「它跟结果相关吗」,靠【后门准则 backdoor criterion】(Pearl 1993/2000):控制集必须阻断所有后门路径,且不得包含路径上的 collider 或其下游。控制 collider 不但不阻断,反而把它打开。三个真实实例:①出生体重悖论——吸烟→低出生体重←先天缺陷,LBW 是 collider,于是低体重儿里吸烟「显得」保护(Hernández-Díaz 2006);②肥胖悖论——在已病人群里肥胖看似保护,因疾病本身导致体重下降;③【Table 2 fallacy】(Westreich & Greenland 2013)——一张多变量表给不出所有系数的因果解释,识别主暴露的控制集对次要协变量通常是错的。
【极难发现】最深的一层:没有一块数据能告诉你该控制什么。同一数据集,控制集不同 → 效应估计不同,而数据无法仲裁,因为偏倚是变量间因果结构(图)的属性,不是样本的属性。因果结构只能靠领域知识/研究设计/DAG 先验写下来,不能靠逐步回归去「发现」。
值得辩论的问题:如果「塞进越多变量越严谨」是明确错误,为什么大量经验论文仍默认把所有协变量塞进同一张表?是 DAG 太贵,还是我们其实在用「调整」当表演?反过来说——你见过哪个真实案例,是「控制得越多、偏得越狠」?







0 评论