假设你参加了一项疾病筛查,结果是阳性。医生告诉你:这种检查对患者的检出率是 90%。那你真正患病的概率是多少?大多数人的第一反应是“90% 左右”。真实答案可能只有一成左右。差别从哪里来?
把百分比换成人数
概率很抽象,人数却一目了然。设想有 1000 个和你情况类似的人来做这项检查,并且已知:
- 基础概率:这种病在人群中占 1%;
- 敏感度:患者中 90% 会查出阳性;
- 误报率:健康人中有 9% 也会查出阳性。
一步步分:
- 1000 人中,患病的有 1000 × 1% = 10 人,健康的有 990 人。
- 10 个患者里,查出阳性的有 10 × 90% = 9 人。
- 990 个健康人里,被误报阳性的有 990 × 9% ≈ 89 人。
所以阳性的一共约 9 + 89 = 98 人,其中真正患病的只有 9 人:9 ÷ 98 ≈ 9.2%。
问题的关键在于:健康人太多了。哪怕误报率只有 9%,乘上 990 人,误报的人数也远远超过真正的患者。
四个名词
- 先验:看到证据之前的概率,这里是 1% 的基础概率。
- 敏感度:真的成立时,出现这个证据的概率,即 P(阳性|患病)。
- 误报率:其实不成立时,也出现这个证据的概率,即 P(阳性|健康)。
- 后验:看到证据之后更新得到的概率,即 P(患病|阳性)。
注意,“检出率 90%”说的是 P(阳性|患病),而你想知道的是 P(患病|阳性)。这正是第 1.1 节讲的:两个方向不能互换。
下面的点阵图就是这 1000 个人。拖动基础概率、敏感度和误报率三个滑块,看看阳性人群里真正患病的比例怎么变化。
这里是交互演示「1000 人方格」:在预测训练营 App 里可以亲手拖动、实时看到结果。
不只是医学
判断一条消息是不是诈骗、一个异常数据是不是真问题,都是同样的结构:先想清楚基础概率,再看证据在“是”和“不是”两种情况下各有多常见。
想不清概率时,就想象 1000 个人,按基础概率分组,再数一数看到证据的人里有多少是真的。