卷 V · 偷来的CH 21深度 21/24

分数线两边的人

这是所有观察性方法里假设最弱、最接近随机试验的一种。它的想法朴素到近乎粗暴:一条人为划下的线,把两批几乎一样的人分成了两类——而这条线,全世界到处都是。

断点回归 RDD带宽局部随机化

▷ 先判一次

某奖学金要求「入学考试 ≥ 70 分」。你比较拿到奖学金和没拿到的学生的毕业成绩,发现前者高很多。断点回归会怎么用这份数据?

A 比较 70 分以上和 70 分以下所有人的平均值B 只比较分数线附近很窄一个范围内的人C 把分数作为控制变量放进回归D 用分数作为工具变量

B 是标准答案。但请顺便想一下:为什么 C(把分数控制进去)不行?

一条线,两批几乎一样的人

局面是这样的:有一个连续的跑变量(running variable,比如考试分数),和一条断点(cutoff,比如 70 分)。跨过这条线的人接受处理,没跨过的不接受。

这个设定天然有一个混淆:分数高的人本来就不一样。但在断点附近,这个混淆几乎消失。

◆ 断点回归的核心论证

考 69.9 分和考 70.1 分的人,在所有方面都几乎相同——能力、家庭、努力程度、运气。那 0.2 分的差别基本是考试当天的随机波动。

唯一系统性的区别是:一个拿到了奖学金,一个没拿到。

所以在断点附近,处理几乎是随机分配的。这被称为「局部随机化」——分数线就是那把免费的剪刀。

做法:在断点两侧各拟合一条局部回归线,外推到断点处,看有多大落差。

这台机器的真断点是 +8.00

带宽        估计值      左边人数    右边人数
────────    ────────    ────────    ────────
±20 分       7.823        2919        1398
±10 分       7.939        1506        1012
±5 分        7.948         751         606
±2 分        7.229         292         271

# 真值 8.00

带宽:唯一的旋钮,唯一的软肋

拖那根滑杆,你会看到一个经典的取舍:

  • 带宽大:用的人多,方差小,但把离断点很远的人也算进来了——而那些人确实不一样,偏差大
  • 带宽小:更接近「局部随机化」的理想,偏差小,但人太少,方差大(±2 那一行只剩 292 和 271 个人,估计跳到 7.23)。

这是标准的偏差–方差权衡,而它没有一个「正确答案」。现代做法是用数据驱动的最优带宽选择(Imbens & Kalyanaraman 2012、Calonico–Cattaneo–Titiunik 2014 的稳健推断),但更重要的实践规矩是:

◆ 带宽稳健性检验

报告一系列带宽下的估计,而不是挑一个最好看的。

如果一个结论只在某一个特定带宽下成立,换个带宽就消失,那它多半不成立。上面那张表里估计从 7.23 到 7.95 波动,都在真值 8 附近——这是健康的表现。

这条规矩之所以重要,是因为带宽是研究者可以自由选择的旋钮。凡是有自由旋钮的地方,就有 p-hacking 的空间。公开一整排数字,是抵御它最简单的办法。

怎么验它有没有被作弊

断点回归有一个别的方法少有的优点:它的核心假设有几个真正能做的检验。

一、操纵检验(McCrary 密度检验)

最大的威胁是人们能精确操纵自己的分数。如果 69 分的人能求老师加 1 分,那么断点右边就挤满了「原本在左边、但特别想要奖学金」的人——他们和左边的人不一样了。

检验办法:画跑变量的密度分布图,看断点处有没有异常的堆积。如果 70 分正好有一个尖峰,而 69 分是个坑,那就是被操纵了。

二、协变量连续性检验

把所有处理前的协变量(性别、家庭背景、之前的成绩)当成结果变量,各跑一次 RDD。它们在断点处都不应该有跳变——如果有,说明断点两侧的人本来就不一样。

这个检验很像随机试验里的基线平衡表,逻辑也一样。

三、安慰剂断点

在没有政策的地方(比如 60 分、80 分)假装有个断点,跑一遍。那里不应该有跳变。

✎ 术语正名:「清晰」与「模糊」

上面讲的是清晰断点(sharp RDD):过线就一定接受处理,不过线就一定不接受。

现实中更常见的是模糊断点(fuzzy RDD):过线只是让接受处理的概率跳一下(比如过线的人 80% 拿到了奖学金,没过线的人 5% 通过别的渠道也拿到了)。

这时候的做法是——把「是否过线」当工具变量,回到第 19 章。所以模糊断点估的也是 LATE:只对那些「因为过线才拿到奖学金」的人成立。

这两章的接口在这里合上了:断点是一种特殊的工具,特殊在它的合法性最容易辩护。

它给的是哪个人群的答案

和工具变量一样,断点回归也有一个必须说清楚的限制:

它估的是「断点附近的人」的效应,不是所有人的。奖学金对一个 95 分的学生有什么用?这份数据一个字都没说。

这个限制常被称为「外部有效性受限」。它不是缺陷,是诚实——这个方法很清楚地知道自己只对哪一小撮人有话语权。而很多别的方法给出一个数字,却说不清那个数字是对谁的。

▸ 在现实里

断点在世界上到处都是,因为人类喜欢划线:

  • 录取分数线、及格线、评级门槛
  • 年龄门槛(法定饮酒年龄、退休年龄、入学年龄)
  • 「消费满 100 减 20」——满减是一个断点
  • 「连续登录 7 天送礼包」——第 7 天是一个断点
  • 「用户注册满 30 天推送优惠券」
  • 信用评分线、贷款审批线
  • 选举中的 50% 得票率(用来研究「执政」的效果)

产品和增长团队手上其实有大量现成的断点。凡是规则里写着「满 X 就……」的地方,都是一次免费的准实验。这可能是这本书里对日常工作最直接可用的一章。

但要小心操纵:「消费满 100 减 20」这种断点通常被严重操纵(大家会凑单到刚好 100),密度检验一看就露馅。相比之下「注册满 30 天」这种时间型断点就干净得多——用户改不了自己的注册日期。

✗ 这个直觉是错的
既然分数是混淆变量,那把分数放进回归控制掉就行了,不需要断点回归这么麻烦。 在断点设计里,处理完全由分数决定——分数过线就一定接受处理。这意味着在给定分数的条件下,处理没有任何剩余变动

回想第 18 章:控制分数,就是把分数的影子从处理和结果里都减掉。但处理百分之百是分数的函数,减掉之后残差是零——没有任何变动剩下来给你估效应。这是正值性假设(第 15 章)的完全失效:任何一个分数值上,要么全是处理组,要么全是对照组,从来没有两者并存。

断点回归的高明之处正在于它绕开了这一点:它不试图在给定分数下比较,它比较的是「断点左极限」和「断点右极限」——一个外推出来的、无穷靠近的比较。

◇ 判词

B只比较分数线附近很窄一个范围内的人。

带宽 ±10 时估出 7.939,±5 时 7.948,真值 8.00。而带宽拧到 ±2,人太少,估计跳到 7.229——方差上来了。

A 「比较所有人」——70 分以上和以下的人整体差别巨大,这就是最朴素的混淆。 C 「把分数控制进回归」——正值性完全失效,见上面那一节。这是 RDD 最值得想清楚的一个点。 D 「用分数作为工具变量」——分数不满足排他性:它当然会直接影响毕业成绩(学得好的人本来就学得好),不是只通过奖学金。但「是否过线」这个二值变量可以当工具——那正是模糊断点的做法。差一个字,性质完全不同。

这一章的一句话

人类到处划线,而每一条线都是一次免费的局部随机化;带宽是唯一的旋钮,所以必须报告一整排,而不是最好看的那一个。

卷 V 还剩最后一个问题,也是所有观察性研究都躲不掉的那个:万一还有一个我没测到的东西呢?下一章给一个把这句空话变成数字的办法——一个 RR = 1.2 的结论,E-value 只有 1.690;一个 RR = 3 的结论,E-value 是 5.449