概率统计——三扇门游戏与贝叶斯定理
本文首发于公众号:TechFlow
在概率论的课本上有一个经典的问题,一直困扰我很久。有很多次我以为我想明白了,过了一段时间却又会糊涂。这个问题学过概率论的同学想必都知道,就是著名的三扇门问题。
说是之前在美国有一个著名的综艺节目,这个节目里有三扇关闭着的门。其中有两扇的后面是山羊,有一扇则放着一辆豪车。主持人会让嘉宾做出选择,嘉宾做出选择之后,主持人会打开其中错误的一扇门,询问嘉宾:伙计,你有一次更改选择的机会,你要使用吗?
节目的效果如何我们不谈,但是背后的数学问题却很有意思。我们更改或者不更改选择,究竟分别有多大的赢面呢?
我们从直觉来分析,我们更不更换答案应该不会影响。毕竟三扇门里有一个正确答案,主持人排除的是错误答案,也就是说正确答案就在剩下的两个门里。不管我们换不换选择,门后是大奖的概率都应该是二分之一才对。但是书上的答案是如果不更换的话,获奖的概率是三分之一,而更换的话,获奖的概率高达三分之二。
这个答案显然和我们的直觉违背,所以,我们去探究一下其中隐藏的深层次的数学原理就很有必要了。实际上,这也是概率论当中理解条件概率和贝叶斯公式非常重要的一个例题。
条件概率
条件概率大家都不陌生,我们在很早的时候就在数学课上学过。
简单来复习一下,假设在样本空间当中存在A、B两个事件。如果A、B两个事件之间没有任何关联,那么就认为它们是独立事件。比如说,如果把我今天早上喝了牛奶当做事件A,我这篇文章转发量超过10当做事件B。显然这两个事件没有任何关联,我喝不喝牛奶完全不会影响文章的转发量。那么就叫做这两个事件是独立事件:
P(AB)=P(A)P(B)P(AB)=P(A)P(B)P(AB)=P(A)P(B)
当然也会存在两个事件彼此有关联的情况,比如我早上喝牛奶和我上班有没有迟到很有可能就是关联事件。因为早上喝牛奶要花时间,很有可能会影响是否迟到。在这个时候P(AB)和两个事件都有关联,就不只是简单的乘积了。
如上图所示,当AB两个事件不是独立事件的时候。P(AB)指的就是AB两个事件的交集,可以认为成在B事件发生的前提下A事件发生,或者是A事件发生的前提下,发生B事件。
概率论上将某件事发生的前提下另一件事发生的概率称为条件概率,写作P(B|A)。
我们把前文的结论写成公式:
P(AB)=P(A)P(B∣A)=P(B)P(A∣B)P(B∣A)=P(AB)P(A)=P(B)P(A∣B)P(A)P(AB)=P(A)P(B|A)=P(B)P(A|B)\\ P(B|A)=\frac{P(AB)}{P(A)}=\frac{P(B)P(A|B)}{P(A)}P(AB)=P(A)P(B∣A)=P(B)P(A∣B)P(B∣A)=P(A)P(AB)=P(A)P(B)P(A∣B)
这个公式推导非常自然,不过用处却很大。因为很多时候条件概率并不直观,需要我们借助这个公式进行计算。
我们看一道书上的经典例题,巩固一下。
假设AB两个城市,A城市下雨的概率是20%,B城市下雨的概率是18%,两地都下雨的概率是12%,请问B下雨,A也下雨的概率是多少。
这题很简单,我们可以直接套用公式,显然P(A)=20%,P(B)=18%,P(AB)=12%P(A)=20\% ,\quad P(B)=18\% ,\quad P(AB)=12\%P(A)=20%,P(B)=18%,P(AB)=12%
那么:
P(A∣B)=P(AB)P(B)=12%18%=23P(A|B)=\frac{P(AB)}{P(B)}=\frac{12\%}{18\%}=\frac{2}{3}P(A∣B)=P(B)P(AB)=18%12%=32
全概率公式
我们介绍条件概率的时候,都是用的A和B两个事件说事。但实际生活当中彼此关联的事件并不止两个,如果多个事件都与事件A有关,那么这个时候的公式又该变成什么样呢?
我们把所有与A事件的有关的事件放入一组,称作B组,其中包含了n个事件。那么根据前面的条件概率,我们可以用B事件来表示A事件。
P(A)=∑i=1nP(A∣Bi)P(Bi)P(A)=\sum_{i=1}^nP(A|B_i)P(B_i)P(A)=i=1∑nP(A∣Bi)P(Bi)
这个公式被称为全概率公式,这个公式成立的前提是B事件组是所有与A事件有关的事件集合,也被称为完备事件组。
贝叶斯定理
这也是本篇文章的重头戏,在课本上贝叶斯定理只有一个简单的公式:
P(A∣B)=P(A)P(B∣A)P(B)P(A|B)=\frac{P(A)P(B|A)}{P(B)}P(A∣B)=P(B)P(A)P(B∣A)
其实就是我们上文当中根据条件概率推导得到的公式。如果只这么理解当然不错,但是这样只能理解其中很浅的一层意思。如果只理解到这一层,后面的先验、后验概率、最大似然就很难理解了。
我们接着看下一层理解,这一次,我们对全概率公式进行变形:
P(A)=∑i=1nP(A∣Bi)P(Bi)P(A)=\sum_{i=1}^nP(A|B_i)P(B_i)P(A)=i=1∑nP(A∣Bi)P(Bi)
那么,事件A发生事件Bi也发生条件概率为:
P(Bi∣A)=P(A∣Bi)P(Bi)∑j=1nP(A∣Bj)P(Bj)=P(A∣Bi)P(Bi)P(A)P(B_i|A)=\frac{P(A|B_i)P(B_i)}{\sum_{j=1}^nP(A|B_j)P(B_j)}=\frac{P(A|B_i)P(B_i)}{P(A)}P(Bi∣A)=∑j=1nP(A∣Bj)P(Bj)P(A∣Bi)P(Bi)=P(A)P(A∣Bi)P(Bi)
这个公式看起来其貌不扬,但其实说明了结果和原因之间的联系。举个很简单的例子,假设A事件是汽车报警。那么导致A事件发生的原因有很多,比如行人不小心碰撞,偷车贼来盗窃,或者是警报故障。这些导致A发生的原因的集合,就是B事件组。
如果有一天晚上我们听到了警报声,我们要做的其实就是要根据事件A来猜测发生事件A的原因,也即是推算P(Bi∣A)P(B_i|A)P(Bi∣A)。
因为是在晚上,所以行人碰撞的概率很低,所以大概率是因为偷车贼。这个时候,我们就需要起床查看。如果是在白天,则相反,行人碰撞的概率很高,偷车贼作案的可能性很小,我们就可以置之不理。
也就是说事件A是我们可以直接观测的事件,而事件B则是事件发生背后存在的原因。贝叶斯公式就是一个寻果溯因的工具,这才是贝叶斯定理真正伟大的地方。
在统计学当中,通常将可以直接观测的事件发生概率称为先验概率,言下之意就是我们可以直接通过实验测量的概率。而发生这个概率背后的原因称为后验概率,也就是说是我们需要通过先验概率来计算的概率。最大似然估计,就是根据后验概率的函数来计算使得发生概率最大时的参数。
最后,我们回到一开始的那个例子,尝试着用贝叶斯定理算出结果。
我们用1,2,3分别代表三扇门,显然豪车可能出现在它们当中任一扇后面。为了简化表达,我们假设嘉宾一定选择第一扇门打开,主持人打开了第二扇门。
我们定义ABCD四个事件,ABC三个事件分别代表三扇门后面是豪车,D事件表示主持人打开第二扇门的概率。
P(A)=P(B)=P(C)=13P(A)=P(B)=P(C)=\frac{1}{3}P(A)=P(B)=P(C)=31
直觉上我们觉得 P(D)=12P(D)=\frac{1}{2}P(D)=21
不过我们并不确定。没关系,我们可以来推算一下。
首先:
P(D)=P(A)P(D∣A)+P(B)P(D∣B)+P(C)P(D∣C)P(D)=P(A)P(D|A)+P(B)P(D|B)+P(C)P(D|C)P(D)=P(A)P(D∣A)+P(B)P(D∣B)+P(C)P(D∣C)
P(D∣A)=12,P(D∣B)=0,P(D∣C)=1P(D|A)=\frac{1}{2}, P(D|B)=0, P(D|C)=1P(D∣A)=21,P(D∣B)=0,P(D∣C)=1
这点也很容易看出来。因为如果奖品出现在第二扇门后面,主持人一定不会打开第二扇门,所以 P(D|B)=0 。同理,如果奖品在第三扇门后面,主持人一定打开第二扇。所以P(D|C)=1 。
代入,可以算出来:P(D)=12P(D)=\frac{1}{2}P(D)=21
接下来,我们要算的是 P(A|D) 和 P(C|D) 。
根据贝叶斯定理:
P(A∣D)=P(A)P(D∣A)P(D)=131212=13P(A|D)=\frac{P(A)P(D|A)}{P(D)}=\frac{\frac{1}{3}\frac{1}{2}}{\frac{1}{2}}=\frac{1}{3}P(A∣D)=P(D)P(A)P(D∣A)=213121=31
P(C∣D)=P(C)P(D∣C)P(D)=1312=23P(C|D)=\frac{P(C)P(D|C)}{P(D)}=\frac{\frac{1}{3}}{\frac{1}{2}}=\frac{2}{3}P(C∣D)=P(D)P(C)P(D∣C)=2131=32
通过种种计算,我们终于得到了正确的结果。但是即使我们理解了贝叶斯原理,理解了这些计算过程,还是解答不了我们心中的疑惑,为什么这和我们的直观感受不一样呢?为什么答案不是1 /2?
这个问题其实很简单,因为我们的思维被限制了。我们只关注剩下没有打开的两扇门上了,完全忽略了开启的门带来的影响。
假设我们换个游戏,还是三扇门,还是一个奖品,还是随机摆放。假设某个人一次可以选择一扇或者两扇门。那么这这两个选项获奖的概率是多少?显而易见,选择两扇门的概率当然是2/ 3。这个时候,我们打开两扇门中一定是错误的那一扇,结果会发生变化吗?当然也不会。
同样的,当主持人询问是否要更换选择的时候,其实就是问我们是要选择一扇门还是两扇门。如果我们不变更选择,就是选择了一扇门。而如果我们变更选择,其实是相当于一开始的时候选择了两扇门。两扇门当中一定有一个错误答案,将它排除并不会影响最终的结果。
在主持人打开那扇门之前,三者的概率是均等的。当门开了之后,我们都知道那扇门的概率发生了塌缩,塌缩成了0。它身上缩小的概率,其实并不是均等地分摊在剩下的两扇门上。理解了这一点,这个问题也就迎刃而解了。
程序员的数学2
概率论与数理统计(浙江大学第四版)
如果觉得有所收获,那就扫码关注下吧:
概率统计——三扇门游戏与贝叶斯定理相关推荐
- 关于三扇门后面奖品的概率问题
前不久去面试,有一道题目: 三门问题(Monty Hall problem)亦称为蒙提霍尔问题.蒙特霍问题或蒙提霍尔悖论,大致出自美国的电视游戏节目Let's Make a Deal.问题名字来自该节 ...
- 有趣的三扇门问题(Monty Hall Problem)
在刚开始学概率论的时候,估计都接触过三扇门问题,今天我们也来聊聊,其实这个问题特别有趣,故事是这样的: 美国有一个电视游戏节目叫Let's Make a Deal,主持人是蒙提霍尔.他身后有三扇门,其 ...
- 蒙塔卡罗三扇门的实现
一.问题描述: 三门问题(Monty Hall probelm)亦称为蒙提霍尔问题,出自美国电视游戏节目Let's Make a Deal. 参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中 ...
- 蒙提霍尔问题-三扇门
题目介绍 参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门可赢得该汽车,另外两扇门后面则各藏有一只山羊.当参赛者选定了一扇门,但未去开启它的时候,节目主持人开启剩下两扇门的其 ...
- 如何确定自己不是高智商?蒙提霍尔三扇门问题
有一个很有意思的简单考题,许多年来我都会和遇到的聪明人探讨一下,堪称智商照妖镜,嘿嘿. "有三扇门,其中一扇门后有宝贝,另两扇门后面空的.你先选择一扇,门不打开.主持人打开你选 择之外的一扇 ...
- R语言与概率统计(三) 多元统计分析(中)
模型修正 #但是,回归分析通常很难一步到位,需要不断修正模型 ###############################6.9通过牙膏销量模型学习模型修正 toothpaste<-data. ...
- 《程序员的数学》第二册 (概率统计)
<程序员的数学>第二册 (概率统计) <程序员的数学>第二册 (概率统计) 概率的定义 概率的数学定义 三扇门(蒙提霍尔问题)一一飞艇视角 蒙提霍尔问题 正确答案与常见错误 以 ...
- 程序员的数学 2 概率统计pdf
下载地址: 网盘下载 内容简介 · · · · · · 本书沿袭<程序员的数学>平易近人的风格,用通俗的语言和具体的图表深入讲解程序员必须掌握的各类概率统计知识,例证丰富,讲解明晰,且提 ...
- 选哪扇门得奖金的算法
一道题目:台上有三扇门,其中一扇门后藏有现金100万,主持人叫你选择其中一扇门后,然后主持人在余下的门中排除一个,这时问你要不要更换选择? 下面给出数学说明 不换门是很简单的古典概型 换门中奖等价于第 ...
最新文章
- Android面试闯关——Activity(持续更新中)
- 风云php,t.php · 风云酷小子/js - Gitee.com
- 946. 验证栈序列
- Android热修复Java类_Android 热修复(一)
- Docker学习总结(52)—— Docker容器环境变量相关知识点的总结
- 【报告分享】2022年元宇宙全球年度(202页干货):蓄积的力量-北京大学.pdf(附下载链接)...
- 【强化学习】表格型求解方法总结:基于表格型方法(Tabular Methods)的规划(Planning)和学习(Learning)
- 在Ubuntu和CentOS上搭建NodeJs的执行环境步骤
- NUAA 南航操作系统实验
- lqr算法 c语言,【CS229 lecture18】linear quadratic regulation(LQR) 線性二次型調節控制
- 【基础】制作word模板
- 线性代数的本质——学习笔记
- Windows家庭版添加本地组策略编辑器的方法
- ST_TileEnvelope函数矢量切片
- 四、Linux磁盘与文件系统管理
- 数据中心产业规模集中化发展观察
- python监控摄像头或网络通常情况
- 爆炸物检测技术对比与分析
- 使用Redshift渲染器,怎么选电脑配置!
- Wise Care 365 Pro v5.8.4 Build 578 好用的系统优化工具
热门文章
- Discuz论坛无法上传头像/ 企业邮箱被归为垃圾邮件的问题
- nuxt全栈仿美团官网13——首页下面的格调
- 已解决解压zip文件,抛出异常:不可预料的压缩文件末端的正确解决方法(亲测有效)
- 【字符统计】统计输入的文章中文字、数字、空格和特殊字符的个数并打印的简单python程序
- jczjbbs.com app.html,app.zhiboo168.com
- Unity 降低粒子占用的Batches
- python自动切换链接_python+selenium自动化(四)之selenium切换窗口
- 做维修的老电工为什么要学三菱PLC
- 全球与中国工业自动化系统市场深度研究分析报告
- 修复好一个中了勒索病毒的科脉软件数据库