← [ BACK_TO_NOTES ]

因果推理、混杂变量与实验控制

从相关关系进入因果推理,系统区分混杂变量、反向因果、选择偏差,并解释随机化、对照、干预和机制证据如何增强因果识别。

#synthesis #growing #phil

[!info] related notes

  • 所属 MOC: logic-moc
  • 相关概念:
  • 易混淆概念:
  • 相关资源:

因果推理、混杂变量与实验控制

为什么“相关不等于因果”还远远不够

知道:

相关不等于因果。

只是第一步。真正需要进一步学的是:

那什么样的证据才会让因果解释变得更可信?

因果推理不是简单拒绝所有相关,而是比较:观察到的关联能否被其他结构解释,以及干预 A 后 B 是否按预测发生变化。

观察关系与因果关系

观察到:

A 与 B 一起变化

可能来自至少这些结构:

A → B
B → A
C → A 且 C → B
A ↔ B
选择机制同时影响 A、B
纯随机波动

因此相关数据只是因果推理的入口。

混杂变量 Confounder

混杂变量 C 同时影响暴露 A 和结果 B,从而制造或扭曲 A–B 的表面关系。

经典结构:

    C
   / \
  v   v
  A   B

例如:

炎热天气
├→ 冰淇淋销量增加
└→ 游泳人数增加 → 溺水增加

冰淇淋销量与溺水可能相关,但天气是重要共同原因。

反向因果

观察:

使用医疗服务越多的人健康状况越差。

不能直接推出:

医疗服务导致健康变差。

可能的方向是:

健康状况差
→ 更需要医疗服务

因果方向本身必须通过时间、机制、设计和干预进一步判断。

选择偏差

样本进入分析的方式也会制造错误关系。

例如只研究“已经住院的人”,某些风险因素之间可能因为共同影响住院概率而出现人为相关。

可以把它理解为:

现实总体
↓ 经过一个非随机筛选门
分析样本

如果这个“门”同时受多个变量影响,样本中的关系可能不再代表总体。

为什么随机对照试验很强

理想随机化尝试让:

Treatment

与干预前的其他潜在混杂因素近似独立。

随机分组
├→ Treatment
└→ Control

如果除了干预之外两组在期望上可比,那么结果差异更容易归因于干预。

它不是魔法:

  • 随机化可能失败或样本太小;
  • 失访会产生偏差;
  • 干预依从性不同;
  • 测量也可能有误;
  • 外部有效性可能有限。

但它显著增强了因果识别。

对照的真正作用

只有“改之前 vs 改之后”时:

Before → intervention → After

时间本身也在变化。

有对照组时:

Treatment:同时期 + 干预
Control:   同时期 + 无干预

可以帮助区分:

是干预造成变化,还是整个环境本来就在变化?

软件性能例子

你上线缓存后 P95 从 800ms 降到 500ms。

错误因果式结论:

缓存让 P95 降低了 37.5%。

更好的识别过程:

  1. 固定或记录 workload;
  2. 比较同一代码除缓存开关外的 A/B;
  3. 重复实验;
  4. 看 cache hit rate;
  5. 排除同期 DB/CDN/配置变化;
  6. 检查机制是否一致:缓存命中路径确实避开昂贵查询。

证据链变成:

干预
+
对照
+
重复
+
机制
+
替代解释排除
↓
更强因果支持

干预与观察的区别

观察:

当 A 自然发生时,B 如何变化?

干预:

如果我们主动把 A 改成某个值,B 会怎样?

现代因果推断常用 do(A=a) 来强调这种区别:

P(B | A=a)

不一定等于:

P(B | do(A=a))

前者是“观察到 A=a 的人”,后者是“主动把 A 设为 a”。

为什么可能不同?因为自然出现 A 的原因本身可能与 B 有关。

DAG:用图画因果假设

有向无环图(DAG)可以把假设写成:

C → A → B
C → B

它的价值不是让图看起来高级,而是强迫你明确:

  • 谁可能导致谁;
  • 哪些变量是共同原因;
  • 哪些变量应控制;
  • 哪些变量反而不应该随便控制。

因果图是假设结构,不是光靠画箭头就证明因果。

“控制越多变量越好”也是错的

有些变量是中介:

A → M → B

如果你想估计 A 对 B 的总效应,却控制 M,就可能把真实路径的一部分人为消掉。

有些变量是 collider:

A → C ← B

对 C 条件化反而可能制造 A 与 B 的虚假关联。

因此统计控制必须依赖因果结构,而不是无脑把所有字段都塞进模型。

机制证据

如果你不仅观察到 A 与 B 关联,还能解释:

A
→ 中间机制 M1
→ M2
→ B

并分别观察到这些步骤,因果解释会更可信。

但机制故事也可能只是“听起来合理”,所以仍需和实际干预/观察证据结合。

多种证据收敛

现实中很多因果结论不是一项实验决定,而是:

  • 不同数据集;
  • 不同研究设计;
  • 时间顺序;
  • 剂量—反应;
  • 机制证据;
  • 自然实验;
  • 随机试验;

共同指向同一个解释。

这种 triangulation 往往比单一研究更稳健。

因果结论也需要校准

可以区分:

存在关联
可能存在因果关系
证据支持因果解释
有较强因果证据
在明确条件下,干预 A 会改变 B

不要把第一层直接写成最后一层。

与贝叶斯推理的关系

贝叶斯更新可以更新“某个因果假设有多可信”,但仅有概率更新并不会自动解决因果识别。

你仍需要正确建模:

  • 哪些数据是观察的;
  • 哪些来自干预;
  • 混杂结构是什么。

与错误因果谬误的关系

错误因果谬误告诉你哪些常见跳跃不成立。

本篇进一步回答:

不跳跃以后,我们怎样逐步建立更好的因果证据?

快速因果检查表

1. A 和 B 的关系到底只是相关,还是有干预证据?
2. 时间方向是否明确?
3. 共同原因 C 有哪些?
4. 有没有反向因果?
5. 样本选择过程会不会制造关联?
6. 有没有合理对照?
7. 结果能否重复?
8. 是否存在可观察机制?
9. 换一种设计后结论仍成立吗?
10. 结论措辞有没有超过证据?

一句记忆

因果推理不是从相关中“猜一根箭头”,而是设计证据去排除那些也能解释同一相关性的其他世界。

创建于 2026/9/11 更新于 2026/9/11
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本