「多控制一个变量,样本量再大也救不回来」:对撞偏差是一致性偏差,不是抽样误差
【锚点】这一篇只钉一个判断:「调整更多变量」不会让估计更接近真值——如果被调整的那个变量是【对撞因子】(collider),偏差就不会随 N 增大而衰减,它是一个 O(1) 的【渐近偏差】。样本量买的是精度,买不到效度。
【显式】一个不需要模拟、纯算术的例子。 设 X = 是否规律运动,Y = 是否患某病,在总体中【完全独立】,各以 1/2 概率取 1。 设入样条件 S=1 当且仅当 X+Y≥1(例如:只有「至少带一个健康或风险标签」的人才进这个数据库)。 在 S=1 的子样本里,(1,0)、(0,1)、(1,1) 三格各占 1/3。于是: P(X=1 | Y=0) = 1 P(X=1 | Y=1) = 1/2 风险比 RR = 0.5。
【隐式】也就是说:在这个数据库里,「患病」看起来把「运动」的概率砍掉了一半。而真实效应是【零】。这不是抽样波动——这是把 (0,0) 这一整格从分母里删掉之后,联合分布的重新归一化。
【细微】关键区别在这里:抽样误差的量级是 O(N{-1/2}),对撞偏差的量级是 O(1)。N 从 1000 涨到 107,置信区间窄了 100 倍,点估计仍然停在 RR=0.5。你会得到一个【极其显著、极其精确、完全错误】的结论。这正是它最危险的地方:统计显著性在这里不但没保护你,它还在替偏差背书。
【极难发现】更深一层:对撞偏差在数据内部【不可识别】。上面那个 S=1 的子样本,本身看起来毫无异常——没有缺失值、没有离群点、没有违反分布假设,任何数据质量检查都会放行。偏差只存在于「生成机制」里,只在对 DAG 的假设里留下痕迹。换句话说:你无法用数据去检验它,只能用论证去排除它。
【流程节点链路】起点:真实 DAG 中 X ⊥ Y(无开放路径)→ 中间节点:以共同后代 S(X+Y≥1)为条件 → 中间节点:S=1 子样本中联合分布被重新归一化,(0,0) 格被删除 → 中间节点:X 与 Y 之间被打开一条「选择路径」→ 终点:观测到 RR=0.5 的虚假保护效应,且 N→∞ 不收敛到 1。
【法学视角】这是「控制变量」最常见的论证错误:把「我控制了 Z」当成一句结论,而它其实只是一句【未完成的诉状】——你必须指名 Z 是混杂因子、中介还是对撞因子,否则「控制」这个动作根本没有真值可言。同一份数据、同一个系数,在混杂 DAG 下是效应、在中介 DAG 下是直接效应、在对撞 DAG 下是纯粹的伪影,而三者打印出来的表格一模一样。这就是 Westreich & Greenland (2013) 说的 Table 2 fallacy:一张表里所有系数被当成「效应」来读,但它们对应的调整集各不相同。
【证据等级】三篇可查:Schisterman, Cole & Platt (2009, Epidemiology) 论 overadjustment bias;Westreich & Greenland (2013, Am J Epidemiol) 论 Table 2 fallacy;Cinelli, Forney & Pearl (2022, Sociological Methods & Research) “A Crash Course in Good and Bad Controls”——最后一篇给了 M-bias 与偏差放大的明确反例,直接证伪「控制越多越好」。
【值得辩论的问题】如果对撞偏差在数据内部不可识别,那么「数据驱动」的变量选择(LASSO、逐步回归、自动因果发现)在原理上就不可能排除它——它们只能优化预测,不能优化效度。那么在无法做实验的领域,「我调整了所有可观测变量」这句话,到底还能不能算一条证据?还是说,它只是一份把举证责任悄悄转移给读者的声明?







0 Comments