【免费下载链接】stat_rethinking_2026
Statistical Rethinking Course 2026
做数据分析时,"多放几个控制变量"听起来总没错。但 Statistical Rethinking 2026 课程(Statistical Rethinking Course 2026)第 6 章会用模拟实验狠狠打脸这个直觉:控制错变量,会让你的结论比不控制时更糟。本文带你用 DAG(有向无图)一眼分辨哪些是"好控制"、哪些是"坏控制",并附课程仓库中的全部配套脚本与作业路径。
为什么"控制越多变量越严谨"是危险直觉?
很多统计软件教程建议"把所有可能变量都塞进模型"。这在预测时也许问题不大,但如果你要做的是因果推断——回答"X 是否导致 Y"——那么每个控制变量都相当于对因果路径做了一次手术:切错了地方,真正的因果效应会被你亲手切断。
课程把这个问题拆解成一句话:
控制变量的价值,取决于它在因果图(DAG)中的结构位置,而不是它和 Y 的相关程度。
三种基本结构决定了一切的对错:
| 结构 | 图形 | 控制它 | 后果 |
|---|---|---|---|
| Fork(叉形) | X ← C → Y | ✅ 应该控制 | 消除混杂偏差,得到好控制 |
| Pipe(管道) | X → Z → Y | ❌ 不该控制 | 切断真实因果路径,低估效应 |
| Collider(对撞) | X → Z ← Y | ❌ 不该控制 | 打开虚假关联,无中生有 |
📌 下面逐一展开,全部概念都能在课程仓库的讲义脚本里找到对应代码。
好控制:控制 Fork 结构中的混杂变量
什么是混杂(confound)
当存在共同原因 C 同时影响 X 和 Y 时,即使 X 与 Y 毫无因果关系,数据也会显示两者相关。这就是"叉形结构"造成的伪相关。
课程用一个经典案例演示:美国各州离婚率与华夫饼连锁店密度高度相关——显然不是华夫饼导致离婚。真正原因是婚姻率(Marriage):婚姻越多,离婚绝对数越多,同时大城市连锁餐厅也更密集。这是一个标准的X ← C → Y结构。
控制婚姻率或平均结婚年龄这类 fork 变量后,"华夫饼→离婚"的虚假关系消失。对应的讲义脚本在 05_elemental_confounds.r,其中用WaffleDivorce数据集拟合了Divorce ~ Marriage + MedianAgeMarriage模型,演示了控制后回归系数如何收敛。
✅经验法则第一条:凡是同时影响"处理"和"结果"的变量(共同原因),控制它是好控制。
坏控制之一:治疗后变量(中介变量)
这是最容易被踩的坑。
如果真实因果路径是X → Z → Y(Z 是中介,mediator),Z 是 X 作用于 Y 的必经通道。此时在回归中加入 Z:
- 你并没有"调整"什么,而是切断了 X 效应的一部分;
- 估计出的 X 系数只代表"绕过 Z 的剩余效应",不再是总因果效应。
课程脚本 06_simulations_bad_controls.r 的第一段就模拟了这种情况:真实设定中 X 对 Y 无直接影响(bZY=0),效应全部经由 Z 传递。结果:
- 不控制 Z 的模型:正确估计出 X 的总效应;
- 控制 Z 后的模型:X 的系数坍塌到 0 附近——真实因果效应被你自己"控制没了"。
⚠️经验法则第二条:只测量于"处理后"、又影响 Y 的变量,控制它会低估因果效应。想知道中介机制,请用中介分析,而不是硬塞进回归。
坏控制之二:对撞变量(collider)与病例对照偏倚
结构X → Z ← Y中,Z 是 X 和 Y 的共同结果,称为对撞点(collider)。
反直觉的地方在于:不对撞点做任何处理时,X 和 Y 完全独立;一旦你"只看 Z 满足某个条件的人",X 和 Y 就会凭空出现相关。
课程脚本 05_elemental_confounds.r 给出了一个绝妙的现实例子:科研项目评审。200 份提案各有一个"新闻性"(newsworthiness)和一个"可信度"(trustworthiness),两者本来不相关。评审只看"综合分"最高的 10% 后,在入选者中——新闻性和可信度出现了负相关:一个维度得分低,就必须靠另一个维度补。这就是对撞偏倚。
同样的结构还藏在病例对照研究里:只研究"患者"(Y 发生的子样本),会让本来独立的暴露变量 X 与混杂因素 Z 产生虚假关联。06_simulations_bad_controls.r 的第二段模拟表明,控制对撞变量后,模型会放大并不存在的偏差。
课程还制作了对撞偏倚的动画演示脚本 06_breen_collider_animation.R:祖孙三代教育水平的案例中,按父母收入分层后,祖辈教育对孩子教育的"效应"会随分层条带漂移——视觉上直观展示了控制对撞点如何制造伪效应。
⚠️经验法则第三条:凡是 X 和 Y 的"共同结果",控制它、或按它筛选样本,都会凭空制造关联。
坏控制之三、四:精度寄生虫与偏差放大器
后两种坏控制更隐蔽,因为被控制的变量和 X 甚至 Y 看起来都"不相关"。
精度寄生虫(precision parasite)
一个与 X 弱相关、与 Y 无关系的噪声变量 Z:控制它不会引入偏差,但会消耗自由度、吃掉估计精度。06_simulations_bad_controls.r 的第三段模拟显示:真实效应为 1,加入精度寄生虫后,X 系数的后验分布明显变宽——点估计还算对,但区间变胖,检验效力下降。
偏差放大器(bias amplifier)
更糟的情形:Z 与 X 弱相关,但 Z 与你漏掉的真实混杂 U相关。此时 Z 本身无害,控制它反而把残余混杂"放大"进 X 的系数——偏差比不控制时还大。脚本中第四段模拟(bXY=0却仍出现系统性偏差)正是这个机制。
⚠️经验法则第四条:与 X 弱相关的变量不是"安全变量",它与潜在混杂的隐藏关联可能成为偏差放大器。控制变量的取舍必须画 DAG,不能只看相关系数。
如何判断该不该控制:DAG 三步检查法
把上面的规则浓缩成一张操作清单,配合课程脚本 06_DAG_animations.r(基于dagitty包的路径分析动画)使用效果更佳:
- 画出 DAG:标出 X、Y 和所有候选控制变量 C 的箭头方向;
- 检查路径:
- C 是 fork(
X ← C → Y)→控制,这是唯一"好控制"的结构; - C 在因果管道上(
X → C → Y)→不控制,除非你只想要直接效应; - C 是对撞点(
X → C ← Y)→不控制,且检查样本是否按 C 筛选过;
- C 是 fork(
- 警惕弱相关变量:相关系数接近 0 不等于因果无害,它可能是精度寄生虫或偏差放大器。
📊 补充:课程第 10 周还会讲授敏感性分析(Confounds & Sensitivity Analysis),教你在无法观测混杂时量化"要多强的混杂才能推翻结论",与本章内容配套学习。
动手练习:作业与配套资源
仓库按周组织了作业题与参考答案,好控制与坏控制部分重点做这两份:
| 周次 | 主题 | 作业 | 参考脚本 |
|---|---|---|---|
| 第 6 周 | 基础混杂(Elemental Confounds) | homework_A06.pdf | 05_elemental_confounds.r、05_DAG_animations.r |
| 第 7 周 | 好控制与坏控制(Good and Bad Controls) | homework_A07.pdf | 06_simulations_bad_controls.r、06_DAG_animations.r |
其他参考资料:
- 全部讲义脚本目录:scripts/(含第 6 章 DAG 动画、对撞偏倚模拟等)
- 作业目录:homework/(Section A 与 Section B 的题目与部分参考答案)
- 课程整体说明与课表:README.md
核心要点回顾 🎯
- 好控制只有一种结构:fork(共同原因),控制它消除混杂;
- 治疗后变量(中介):控制它会切断真实效应,导致低估;
- 对撞变量:控制它、或按它筛选样本,会凭空制造虚假关联;
- 弱相关变量:可能是精度寄生虫(损失精度)或偏差放大器(放大偏差);
- 判断工具永远是 DAG,而不是相关系数。
一句话总结:在因果分析中,控制变量的"数量"不重要,"位置"才重要。画好 DAG,再动回归。
【免费下载链接】stat_rethinking_2026
Statistical Rethinking Course 2026
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考