本文来自微信公众号:风云之声(ID:fyvoice),作者:袁岚峰,本文首发于2021年8月12日(贝叶斯统计:概率思维的魔法 | 袁岚峰),题图来自:视觉中国
两个小孩问题
来看一道题:一户人家有两个小孩,已知其中至少一个是男孩,请问两个都是男孩的概率是多少?或者换一种问法:一户人家有两个小孩,已知其中至少一个是男孩,请问另一个也是男孩的概率是多少?这两种问法是等价的。
请仔细思考一下,再往下看。
直觉的回答显然是1/2,因为另一个小孩是男是女的比例应该跟第一个小孩无关。然而,这个直觉的回答是错的!
正确答案是1/3。如果你能面不改色地答出1/3,那么你就是概率论高手了。下面,我们来解释这个正确答案。
最简单、最容易理解的推理是这样。把这两个小孩称为甲和乙,那么在没有任何外界信息的情况下,甲乙的性别总共有四种组合:甲乙都是男,甲乙都是女,甲男乙女,甲女乙男。原本,这四种组合的概率都相等。然后,现在知道“甲乙中至少有一个是男孩”,所以“甲乙都是女孩”的这种组合被排除了,剩下三种组合等概率:甲乙都是男,甲男乙女,甲女乙男。题目问的是,“甲乙都是男孩”的概率是多少?这是三种组合中的一种,所以概率是1/3。
你还可以编一个程序去模拟一下。随机产生很多个有两个小孩的家庭,保留其中至少一个是男孩的,也就是排除那些两个都是女孩的,然后在剩下的当中数出那些两个都是男孩的。只要你的样本够多,你肯定会得到一个接近于1/3的比例。因此只要你认真思考了这个问题,你就很容易接受1/3这个答案。
然而,还是有不少网友不能理解这个答案。他们唯一能够接受的,就是一个常规的题目和一个常规的答案,即:一户人家有两个小孩,已知老大是男孩,请问老二也是男孩的概率是多少?对此的回答当然是1/2。于是,这些网友就总以为我出的这道题是错的或者有歧义,甚至找出种种东拉西扯的理由来抬杠(https://www.toutiao.com/w/a1707314235262987)。
实际上,这道题的表述很清晰,毫无歧义。关键在于,这道题说的是“两个小孩中至少一个是男孩”,没有指定是哪个小孩,而常规的题说的是已知“老大是男孩”,已经指定了是老大。观测者掌握的信息不一样,所以答案会不一样。
在甲乙只有一个男孩的情况下,观测者必须找到这个男孩才会报“这里有男孩”。而在甲乙都是男孩的情况下,观测者找到其中任何一个人就会报“这里有男孩”。所以,甲乙都是男孩的情况会被报两次。乍看起来“另一个小孩是男孩”的概率跟“另一个小孩是女孩”的概率相等,但其实前者只是后者的一半,因为前者有重复计数。由此得到正确的结果是:
(1/2) / (1/2 + 1) = 1/3
有一位网友机智地总结(https://weibo.com/3710258141/Ksb6wC2p2):“两个小孩,听说有一个男孩,另一个也是男孩的概率1/3。两个小孩,看见一个男孩,另一个也是男孩的概率1/2。”这个总结是正确的!“听说”和“看见”的区别在于,听说时只知道有一个是男孩,不知道是谁,而看见时知道看见的那个就是男孩。
如果你觉得用男孩女孩来出题容易被种种联想绕糊涂,那么这道题完全可以换成另一种表述方式:有两个球随机地染成黑色或白色,黑白的概率各占一半,已知这两个球中至少一个是黑球,请问另一个也是黑球的概率是多少?回答就是1/3,推理过程跟上面一样。把男孩女孩换成黑球白球,你就不会有任何疑惑了吧?
条件概率
讲完了简单的例子,我们来讲普适的理论,它叫做贝叶斯统计(Bayes statistics)。这个理论的出发点非常简单,看起来完全是常识。但惊人的是,从这个简单的基础出发逐步扩展,这个理论就能解决越来越复杂的问题,直至对我们认识世界的模式产生重大的震撼!
先来看最基础的理论。假如有两件事A和B,那么“A和B都发生的概率”等于“A发生的概率”乘以“在A发生的前提下B发生的概率”。这是显而易见的,对吧?因为它就是概率的定义嘛。但仅仅是这样一个定义,已经能解决不少问题了。
用符号来表示,把“A和B都发生的概率”写成P(A∩B),其中∩是集合论中表示交集的符号。把“A发生的概率”写成P(A)。把“在A发生的前提下B发生的概率”写成P(B|A)。那么,这三个概率之间的关系就是
P(A∩B) = P(A) P(B|A)
其中P(B|A)是最特别的,它是在某个前提下的概率,我们称之为条件概率(conditional probability)。在实际问题中,条件概率往往是未知的,因为它反映了两件事之间的关联,这并不是一眼能看出来的。条件概率怎么求呢?把上面的公式变形一下,就得到
P(B|A) = P(A∩B) / P(A)
条件概率(《科学世界》2021年第6期)
也就是说,“在A发生的前提下B发生的概率”这个条件概率,等于“A、B都发生的概率”除以“单独A发生的概率”。
让我们回到开头的那道题,练习一下这些概念。在这里,A是“两个小孩中至少一个是男孩”,B是“两个小孩都是男孩”,题目问的就是条件概率P(B|A)。
B发生的时候A肯定发生,所以P(A∩B)就等于P(B),它等于1/2的平方即1/4。而P(A)是多少呢?“两个小孩中至少一个是男孩”的概率,等于1减去“两个小孩都是女孩”的概率1/4,即3/4。所以要求的条件概率等于
P(B|A) = P(A∩B) / P(A)
= (1/4) / (3/4) = 1/3
你看,这不就得到1/3了吗?
用这种方法,我们再来看常规的问题:一户人家有甲乙两个小孩,已知甲是男孩,请问乙也是男孩的概率是多少?答案当然是1/2。不过怎么推出这个结果呢?
这时A是“甲是男孩”,B是“两个小孩都是男孩”。B发生的时候A同样是肯定发生,所以分子P(A∩B)仍然等于P(B),等于1/4。但分母P(A)变了,它现在成了“甲是男孩”的概率,它等于1/2而不是3/4。所以条件概率变成了
P(B|A) = P(A∩B) / P(A)
= (1/4) / (1/2) = 1/2
这就得到了直觉的答案。
现在大家对这两道题的区别有更深的认识了吧?区别全都在分母的P(A)上。不同的已知信息,就对应不同的前提,所以会得到不同的条件概率。
下面,我们来出一道进阶的题目:一户人家有两个小孩,已知其中至少一个是在星期二出生的男孩,请问两个都是男孩的概率是多少?
如果你能面不改色地答出是13/27,那么你就是真正的概率论高手了!
对此的计算过程如下。现在A是“至少一个小孩是在星期二出生的男孩”,B是“两个小孩都是男孩”。
A、B都发生,就意味着“两个小孩都是男孩”,而且“至少一个小孩在星期二出生”。所以A、B都发生的概率,等于“两个小孩都是男孩”的概率1/4,乘以“至少一个小孩在星期二出生”的概率,它等于1减去“两个小孩都不在星期二出生”的概率,即[1- (6/7)2]。
而单独A发生的概率,等于1减去“两个小孩都不是在星期二出生的男孩”的概率,即[1- (13/14)2]。因此
P(B|A) = P(A∩B) / P(A)
= (1/4) × [1 - (6/7)2]/ [1 - (13/14)2]
= (72 - 62)/ (142 - 132)
= (7 + 6) / (14 + 13) =13/27
实际上,这类题目可以推而广之。如果题目中那个条件出现的概率是c,最终的条件概率就是
P(B|A) = (1 - c) / (2 - c)
证明稍后给出。把第一道题的
c = 1/2
代进去,就得到
P(B|A) = 1/3
把进阶题目的
c = 1/14
代进去,就得到
P(B|A) = 13/27
因此,如果条件给得越来越长,c越来越低,条件概率就会趋近于1/2。
回头来看这个式子的推导:
P(B|A) = (1/4) × [1 - (1 -2c)2] / [1 - (1 - c)2]
= (1/4) (4c - 4c2)/ (2c - c2)
= (c - c2) / (2c- c2)
= (1 - c) / (2 - c)
琳达问题
下面,我们再来看一道有趣的题目:已知琳达是一位31岁的单身女性,直率并且非常聪明。在大学期间,她主修哲学,对种族歧视问题和社会偏见非常关注,也参加过反核示威游行。然后,你觉得琳达的身份更可能是下面哪一个?(一个概率问题测出你的认知能力 | 袁岚峰)
(A)琳达是一名银行出纳员;
(B)琳达是一名信奉女权主义的银行出纳员。
请仔细思考一下,再往下看。
答案是(A)“琳达是一名银行出纳员”,因为(B)“琳达是一名信奉女权主义的银行出纳员”的概率等于A的概率乘以“在这个前提下她信奉女权主义”的概率,所以肯定小于前者。换句话说,B是A的真子集,所以B的概率肯定小于A的概率。你答对了吗?
奇妙的是,大多数人选的是(B)。因为背景信息给出的几乎都是女权主义者的典型描述,却跟银行出纳没有关系。
这些人犯了什么错误呢?看了贝叶斯统计的书以后,我才发现,他们的错误在于搞混了两个条件概率。题目问的是在已知琳达是31岁的单身女性、主修哲学等等前提下,她是银行出纳员的条件概率或者她是信奉女权主义的银行出纳员的条件概率。而许多人想的却是,在已知琳达是银行出纳员或者是信奉女权主义的银行出纳员的前提下,她是31岁的单身女性、主修哲学等等的条件概率。
也就是说,这道题问的是P(A|题干)和P(B|题干)哪个大,但这些人想的却是P(题干|A)和P(题干|B)哪个大。显然,在已知B的前提下题干出现的概率比已知A的前提下题干出现的概率大,因为题干跟女权主义的关系很近。但这正是一个思维陷阱!这个例子提醒我们,对于条件概率一定要分清哪个是前提,哪个是结果,P(1|2)和P(2|1)是不同的!
再用符号精确地表述一下:
P(A|题干) = P(A∩题干) / P(题干)
P(B|题干) = P(B∩题干) / P(题干)
这两个等式的分母一样,分子上由于B是A的真子集,所以
P(A∩题干) > P(B∩题干)
由此得到
P(A|题干) > P(B|题干)
这是正确的答案。而另两个条件概率的比较是:
P(题干|A) = P(A∩题干) / P(A)
P(题干|B) = P(B∩题干) / P(B)
这两个等式的分子分母都不同,分子和分母上都是关于A的那个更大。这样两个量相除,无法截然判断哪个大哪个小。
不过,社会常识告诉我们题干和女权主义关系密切。打个比方,在所有的银行出纳员里只有1/5是女权主义者,即
P(B) = P(A) / 5
不过在已知她是31岁的单身女性、主修哲学等等的前提下,女权主义者的比例就扩大到了1/3,即
P(B∩题干) = P(A∩题干) / 3
这时可以看到,P(题干|B)跟P(题干|A)相比,分子分母都在缩小,但分母缩小得更多,所以最终的比值更大。由此得到,
P(题干|A) < P(题干|B)
这是那些选择B的人真正的思维。当然,他们肯定没想这么清楚!
罐子问题
下面,我们再来看这样一道题:罐子A和罐子B里面各有20个球,这些球都是红色或蓝色的,但在两个罐子中的比例不同。罐子A里是4个红球和16个蓝球,罐子B里是12个红球和8个蓝球。你蒙上眼从某个罐子里取了一个球,然后发现这是一个红球。请问,你抽到的罐子更可能是A还是B呢?
答案显然是罐子B,因为罐子A中红球的比例只有
4/20 = 1/5
而罐子B中红球的比例是
12/20 = 3/5
但如何把这个回答定量化呢?你抽到罐子A和罐子B的概率分别是多少?
这时我们要计算的是,在已知取出红球的前提下,罐子是A或B的概率。按照前面的方法,我们熟练地写出
P(罐子A|红球) = P(罐子A∩红球) / P(红球)
分子上的P(罐子A∩红球)是容易计算的,它等于“在没有任何前提下抽到罐子A”的概率1/2,乘以“在罐子A中抽中红球”的条件概率1/5。也就是说,
P(罐子A∩红球) = P(罐子A) P(红球|罐子A)
= (1/2) × (1/5) = 1/10
但是分母呢?P(红球)这个概率等于多少?思考一下就会发现,它等于两种情况的概率之和,即“抽中罐子A然后抽中红球”的概率,加上“抽中罐子B然后抽中红球”的概率。也就是说,
P(红球) = P(罐子A∩红球) + P(罐子B∩红球)
= P(罐子A) P(红球|罐子A) + P(罐子B) P(红球|罐子B)
= (1/2) × (1/5) + (1/2) ×(3/5) = 2/5
这里有趣的是,分子变成了分母的一部分,所以自动保证了比值不大于1。最终我们算出
P(罐子A|红球) = P(罐子A∩红球) / P(红球)
= (1/10) / (2/5) = 1/4
P(罐子B|红球) = 1 - 1/4 = 3/4
由此可见,在抽到红球的情况下,罐子是B的可能性确实更大,达到3/4。“抽到红球”这个观测事实,把我们抽到罐子B的可能性从最初的1/2,提升到了3/4。
这种思维方式的特点是,对某个假说先提出一个置信度,然后根据观测结果更新这个置信度。我们把假说在检验之前的置信度称为先验概率(prior probability或a priori probability),把它在检验之后的置信度称为后验概率(posterior probability或a posteriori probability)或逆概率(inverse probability)。之所以叫逆概率,是因为它就像追溯历史一样,通过已经发生的结果去推测原因的概率。福尔摩斯和柯南发来贺电!
贝叶斯定理
在刚才的计算中,我们把分母上某件事的概率分解成它由各种可能原因导致的概率之和,分子就是其中的某一项。这是一种普适的思想,称为贝叶斯定理(Bayes’ theorem)。
说来说去,贝叶斯是什么人?他是十八世纪英国的牧师和数学家托马斯·贝叶斯(Thomas Bayes,1702-1761)。在世的时候,贝叶斯一点都不出名。现在我们只有贝叶斯的一幅肖像画,还不确定到底是不是他。
贝叶斯只留下了一篇论文,提出了贝叶斯统计的基本思想,但没有写出明确的公式。而且这篇论文还没来得及发表,是在他去世后的1763年,由他的朋友理查德·普莱斯(Richard Price,1723-1791)发表的。如果不是因为普莱斯,贝叶斯就会像历史上的很多伟大人物一样湮没无闻。所以,这个定理也被称为贝叶斯—普莱斯定理。
就像恩格斯和马克思的关系一样,我们向这种友谊致以崇高的敬意!正如《论语》里的一段:
曾子曰:“可以托六尺之孤,可以寄百里之命,临大节而不可夺也。君子人与?君子人也。”
我们现在见到的贝叶斯定理的形式,其实是拉普拉斯(Pierre-Simon Laplace,1749-1827)给出的。这位鼎鼎大名的法国数学家、物理学家和天文学家,就不需要多加介绍了。
换门问题
下一个问题乍听起来好像脑筋急转弯,但其实是个真正的数学问题:你面前有三道关闭的门,其中一道门后面有一辆汽车,另外两道门后面只有山羊。如果你挑中了有汽车的门,你就赢得这辆汽车。你先挑一扇门,然后主持人在剩下的两扇门中打开一个没有汽车的。主持人知道汽车在哪里,所以他总是可以找到一扇没有汽车的门打开。现在你可以选择换成那道主持人没有打开的门,或者不换。请问你该不该换呢?
换门问题
请仔细想一想,再往下看。
这个问题难倒了许多聪明人,甚至包括一些伟大的数学家。所以如果你做错了,也不足为奇。我是什么情况呢?我在第一次听到这个问题时就给出了正确的答案:应该换!但没有完全想清楚其中的道理。
我的思考是:把这个问题推向极致,假如有一万道门,主持人打开了9998道门,只剩下一道门,难道你还会坚定地认为自己最初挑的门跟主持人没打开的那道门具有同等的获奖概率吗?显然不会,因为主持人肯定用到了他关于汽车在哪里的知识,才避开了那扇门。这时汽车在自己最初挑的门里的概率是1/10000,而在主持人剩下的那扇门里的概率是9999/10000。
根据这样的推理,我可以估计出在初始的问题中,换门会把获奖概率从1/3提高到2/3。但这只是个推测,并不是精确的计算。
如何直接算出结果呢?学过贝叶斯定理后,我们就能这么做了。让我们把最初挑的那扇门称为A,把主持人打开的那扇门称为B,把剩下的那道门称为C,然后
P(车在A|打开B) = P(车在A∩打开B) / P(打开B)
= P(车在A∩打开B) / [P(车在A∩打开B) + P(车在B∩打开B) + P(车在C∩打开B)]
先来看分子,它等于“车在A”的先验概率1/3乘以“车在A时主持人打开B”的概率。这时B、C两扇门都没有汽车,主持人可以在其中任选一扇打开,所以“车在A时主持人打开B”的概率是1/2,整个分子是
P(车在A∩打开B) = (1/3) × (1/2) = 1/6
再来看分母。分母的第一项就是分子1/6。
第二项是“车在B时主持人打开B”的概率。这是不可能的,所以这个概率是0。
第三项是“车在C时主持人打开B”的概率。这时主持人要在B、C中打开一扇门,但他知道C后面有汽车,不能打开,所以他唯一的选择就是打开B。因此,这一项就等于“车在C”的先验概率1/3。
把这三项加起来,就得到分母
P(打开B) = 1/6 + 0 + 1/3 = 1/2
其实这是理所应当的,因为在你最初挑了A门以后,主持人打开B、C两道门的先验概率相等,所以它们肯定都是1/2。分子分母相除,就得到
P(车在A|打开B) = (1/6) / (1/2) = 1/3
算来算去,“主持人打开B”这个动作完全没有改变“车在A”的概率,它仍然等于自己的先验概率1/3。这也是理所应当的,因为只要车在A,主持人就可以打开其他任何一扇门,它没有给A增加任何信息量。
有趣的是,在主持人打开B以后,“车在C”的概率变成了多少呢?这时分母不变,分子变成了分母1/6 + 0 + 1/3中的第三项1/3,因此
P(车在C|打开B) = (1/3) / (1/2) = 2/3
这才是真正惊人的结果,“主持人打开B”这个动作把“车在C”的概率从先验概率1/3提高到了后验概率2/3。许多聪明人就是因为想不明白这一点,所以答错了这道题。实际上,车在C时主持人要避免这扇门,所以他打开B就会给C增加信息量!了解了换门问题,你对先验概率和后验概率就会获得深入的理解。
疾病监测问题
下一个问题是关于疾病检测的,跟当前全人类的大问题新冠疫情密切相关:假设有一种传染病,已经感染了0.1%的人。有一种检测方法,对感染者正确地测得阳性的概率是99%,而对1%的感染者会测得假阴性。同时它对非感染者正确地测得阴性的概率是97%,而对3%的非感染者会测得假阳性。用专业术语来说,这种检测方法的灵敏度(sensitivity)是99%,特异度(specificity)是97%。现在如果你检测后结果是阳性,你感染的概率是多少呢?
乍看起来,你已经有99%的可能性中招了。但了解贝叶斯统计的人,就知道正确的算法应该是
P(感染|阳性) = P(感染∩阳性) / P(阳性)
= P(感染∩阳性) / [P(感染∩阳性) + P(非感染∩阳性)]
= (0.1% × 99%) / (0.1% ×99% + 99.9% × 3%)
= 99/3096 ≈ 3.2%
所以,你真正的感染概率只有3.2%而已。为什么会这样?因为非感染者占总人口的99.9%,即使这些人中只有3%被误测为阳性,还是比0.1% × 99%的真阳性多得多。这个例子说明,即使在检测的灵敏度和特异度都很高的情况下,都可能出现大量的误报。
2020年4月,曾经流传一个说法:美国要给经检测已经感染过新冠病毒的人发“免疫证书”,因为这些人已经有免疫力了,让这些人自由活动,就可以恢复经济。我做过一期节目,解读了这种说法的不靠谱(5分钟检测和免疫证书,真的是美国的黑科技吗?| 袁岚峰)。基本的道理在于,有许多人是假阳性,即没有感染过却被检测为阳性的。你以为这些人有免疫力了,但其实并没有!所以想依靠这招恢复经济,完全是幻想。
下一个问题是:刚才那个问题里,如果在检测出阳性后再检测一次,发现还是阳性,那么这时感染的可能性是多少?
这时计算方法跟刚才完全一样,唯一的区别就是把感染的先验概率从第一次检测前的0.1%换成了第一次检测后的99/3096 ≈ 3.2%。于是我们得到
P(感染|阳性) ≈ (3.2% × 99%) / (3.2% ×99% + 96.8% × 3%) ≈ 52%
这时感染的概率就比较大了。我们在现实生活中正是这样做的,测出阳性时立刻再做一次检测。
这其实反映了一种思想:概率的迭代。我们认识世界的一般模式,就是先假设某种理论,然后观测事实在多大程度上跟这个理论符合,根据符合或不符合的程度修正对这种理论的置信度。所以,概率是可以变的,因为它本质上是我们对理论的相信程度。
狼来了问题
“狼来了”的寓言,就是概率迭代的经典例子。村民最初对牧羊少年十分相信,但每次他报假警都会让村民对他的信任度下降。后来,即使狼真的来了,村民也不会相信他的报警。
我们甚至可以给这个故事赋予一些具体的数值。最初,村民很相信少年,认为他说真话的概率是0.9,说假话的概率只有0.1。在少年说假话的情况下,有狼的概率是0.3,没有狼的概率是0.7。这话的意思是,即使少年本意是撒谎,也有30%的可能真的出现狼。在少年说真话的情况下,有狼的概率是0.8,没有狼的概率是0.2。这话的意思是,即使少年本意是真的报警,也有20%的可能村民赶过去狼已经跑了。
然后,有一天少年大喊“狼来了”,村民赶过去却没有发现狼。为什么会这样呢?这有两种可能的原因,一是少年说假话而且确实没有狼,二是少年说真话但狼跑了。由此可以算出,这时少年撒谎的概率是
P(撒谎|没有狼) = (0.1 × 0.7) / (0.1 ×0.7 + 0.9 × 0.2) = 7/25 = 0.28
所以少年的一次报假警,把村民认为他说假话的概率从10%上升到了28%。如果村民一次次地扑空,他们认为少年说假话的概率就会不断上升。5次扑空后,这个概率就会超过98%。
如果喊“狼来了”后狼真的来了呢?这时少年的信誉会稍有恢复,不过恢复得很慢。这正反映了我们在日常生活中的常理:信誉丧失后,不容易恢复。
美国政治学家阿尔伯特·沃尔斯泰特(Albert Wohlstetter,1913-1997)把听到反复警告后反应变得迟钝的倾向称为“狼来了综合征”,并把它作为二战时美军没能成功预测日军偷袭珍珠港的原因。
我们还可以想到,每当发生灾害例如地震后,都有人说自己预测了灾害,怒斥政府为什么不预警。实际上这是因为对这些灾害的预测还不成熟,政府如果听风就是雨,那大家就会整天收到误报,没法正常生活了(地震预报都是伪科学,那预警倒计时是如何做到的?| 科技袁人)。
无处不在的贝叶斯统计
最后,我们需要指出,贝叶斯统计的思想是非常普适的。
它可以用于破译密码,可以用于过滤垃圾邮件,可以用于寻找失事飞机,可以用于诊断疾病,可以用于搜索引擎,可以用于机器翻译,可以用于模式识别,可以用于研发新药,可以用于确定引起地震的断层,甚至可以用于宇宙学,研究哪一种宇宙模型最符合我们所在的宇宙。实际上,当前的大部分人工智能技术就是以贝叶斯统计为基础的。
贝叶斯统计甚至可以影响我们的哲学思想,成为贝叶斯主义(Bayesianism)。在贝叶斯主义者看来,没有任何关于现实世界的理论是终极真理,重要的是随着观测事实的积累不断更新对理论的置信度。有一句格言可以反映这种思想:“所有的模型都是错的,但其中有些是有用的。”
最近,我的朋友、巴黎居斯塔夫·埃菲尔大学计算机系助理教授方弦博士翻译了一本书《贝叶斯的博弈:数学、思维与人工智能》,同时中国科学院的科普杂志《科学世界》2021年第6期也刚好以贝叶斯统计为主题。我在本文中讲的这些例子,都是从这本书和这期杂志中看到的,在这里向大家推荐。
本文来自微信公众号:风云之声(ID:fyvoice),作者:袁岚峰