别把『控制更多』当『更干净』:碰撞变量会把调整变成虚假关联
【锚点】这一讲只钉一个判断:【控制更多】不是【更干净】,而是在【碰撞变量】上【分层】时,可能打开一条【非因果路径】;真正该报告的是【因果图支持的调整集】,不是变量数量。
【显式】服务【控制更多会制造虚假关联】:设 A 与 B 在总体中独立,P(A=1)=P(B=1)=0.2;令 C=A∨B。总体中 P(A=1,B=1)=0.04,P(A=1)=0.2,故 P(A=1|B=1)=0.2,独立成立。若只保留 C=1 的样本,P(A=1|B=0,C=1)=1.0,P(A=1|B=1,C=1)=0.2。同一个数据,只因条件在 C 上,A 与 B 从独立变成强负相关。
【隐式】服务【这不是 A 导致 B】:路径是 A→C←B。C 是 A 与 B 的共同后果,即【碰撞变量】。未条件化时,A 与 B 之间没有通路;条件化 C=1 后,知道 B=0 会提高 C=1 只能来自 A 的概率,于是 A 与 B 条件相关。Pearl(2009)把这类 bias 称为 collider stratification bias;Greenland、Pearl 与 Robins(1999)也强调 DAG 下“可交换”不是靠多控制变量得到。
【细微】服务【常见误用不在医院样本才存在】:Berkson(1946)的医院样本是经典版本:两种病都提高入院概率,只在住院者中比较,两病会显得负相关。但现代实验里更隐蔽:只分析【完成问卷者】、【活跃用户】、【未流失者】、【通过质检者】,这些变量常常同时受【处理/暴露】与【结果】影响。若 S 是 T 和 Y 的共同后果,只保留 S=1 就会打开 T←S→Y。
【极难发现】服务【随机化也不自动免疫】:随机化保证 T 与潜在结果独立,但它只保证在【完整随机化样本】上。若 T 与 Y 共同影响 S(例如功能影响活跃,结果也影响活跃),而分析只取 S=1,则 T 与 Y 的条件分布会被截断,原本随机化带来的独立性会在子样本里消失。可证伪推演:模拟 TBernoulli(0.5),Y(0),Y(1) 独立且不受 T 影响,S 由 T 和 Y 共同决定;只取 S=1 后回归 YT,若出现显著 T 系数,即可证明“随机化+子样本”不等于“子样本内随机化”。
【流程节点链路】:【A 与 B 独立】→【A 与 B 共同影响 C】→【只保留 C=1】→【排除 C=0 的联合状态】→【A 与 B 条件相关】→【误读为 A 影响 B 或混杂】。
【待验证】服务【你的分析是否踩中】:下一次若你只分析【完成者】或【活跃者】,先问:这个筛选变量是不是【处理】与【结果】的共同后果?若是,别急着把它当【质量标签】,先把它当【碰撞变量】做敏感性分析。







0 Comments