《贝叶斯思维:统计建模的Python学习法》一1.7 Monty Hall难题

简介:

本节书摘来自异步社区《贝叶斯思维:统计建模的Python学习法》一书中的第1章,第1.7节,作者【美】Allen B. Downey,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.7 Monty Hall难题

蒙蒂大厅(Monty Hall problem)难题可能是历史上最有争议的概率问题。问题看似简单,但正确答案如此有悖常理以致很多人不能接受,很多聪明人都难堪于自己搞错了反而据理力争,而且是公开的。

蒙蒂大厅是游戏节目“来做个交易”(Let’s Make a Deal)的主场。蒙蒂大厅难题也是这一节目的常规游戏之一。如果你参加节目,规则是这样的:

  • 蒙蒂向你示意三个关闭的大门,然后告诉你每个门后都有一个奖品:一个奖品是一辆车,另外两个是像花生酱和假指甲这样不值钱的奖品。奖品随机配置。
  • 游戏的目的是要猜哪个门后有车。如果你猜对了就可以拿走汽车。
  • 你先挑选一扇门,我们姑且称之为门A,其他两个称为门B和门C。
  • 在打开你选中的门前,为了增加悬念,蒙蒂会先打开B或C中一个没有车的门来增加悬念(如果汽车实际上就是在A门背后,那么蒙蒂打开门B或门C都是安全的,所以他可以随意选择一个)。
  • 然后蒙蒂给你一个选择。坚持最初的选择还是换到剩下的未打开的门上。

问题是,你应该“坚持”还是“换”?有没有区别?

大多数人都有强烈的直觉,认为这没有区别。剩下两个门没有打开,车在门A背后的机会是50%。

但是,这是错的。事实上,如果你坚持选择门A,中奖概率只有1/3;而如果换到另外一个门,你的机会将是2/3。

运用贝叶斯定理,我们可以将这个问题分解成几个简单部分,也许这样可以说服自身,“正确”的答案实际上的的确确是对的。

首先,我们应该对数据进行仔细描述。在本例中为D包括两个部分:蒙蒂打开了门B,而且没有车在后面。

接下来,我们定义了三个假设:A,B和C,表示假设车在门A,门B,或门C后面。同样,采用表格法:


32e39db3e749bb1d1ca33de06830ea0286a5738c

填写先验很容易,因为我们被告知奖品是随机配置的,这表明该车可能在任何门后面。

定义似然度需要一些思考,在充分合理的考虑后,我们确信正确的似然度如下:

  • 考虑假设A:如果汽车实际上是在门A后,蒙蒂可以安全地打开门B或门C。所以他选择门B的概率为1/2。因为车实际上是在门A后,也就是说车不在门B后的概率是1。
  • 考虑假设B:如果汽车实际上是在门B后,蒙蒂不得不打开门C,这样他打开门B的概率就是0(译注:也就是这个假设的似然度为0,不可能发生)。
  • 最后考虑假设C:如果车是在门C后,蒙蒂打开门B的概率为1,发现车不在那儿的概率为1(译注:因为在选手已经选了A门这个情况下,可供蒙蒂增加悬念开门的选择只有B和C,而假设C有车,蒙蒂肯定不会选,因此蒙蒂会打开B门的概率为1,也就是在这个假设下,数据D的似然度为1)。

现在我们已经完成有难度的部分了,剩下无非就是算术。第三列的总和为1/2,除以后得到p(A|D) = 1/3,p(C|D) = 2/3,所以你最好是换个选择。

该问题有许多变形。贝叶斯方法的优势之一就是可以推广到这些变形问题的处理上。

例如,设想蒙蒂总是尽可能选择门B,且只有在迫不得已的时候才选门C(比如车在门B后)。在这种情况下,修正后的表如下:


75741a914c8937a160184923bd9d5e9ee519c36a

唯一的变化是p(D|A)。如果车在门A后,蒙蒂可以选择打开B或C。但在这个变形问题里面,他总是选择B,因此p(D|A) = 1。

因此,对A和C,似然度是相同的,后验也是相同的:p(A|D) = p(C|D) = 1/2,在这种情况下,蒙特选择B 门显示不了车位置的任何信息,所以无论选手选择坚持不变还是改变都无关紧要。

反过来的情况下,如果蒙蒂打开门C,我们就知道p(B|D) = 1(译注:因为蒙蒂总是优先选择门B,而门D是他打开了门C,因此在假设车在门B后的前提下,他必然会打开门C,概率为1,即p(B|D)=1)。

本章中我介绍了蒙蒂问题,因为我觉得这里有它的趣味性,也因为贝叶斯定理使问题的复杂性更易控制。但这并不算是一个典型的贝叶斯定理应用,所以如果你觉得它令人困惑,没什么好担心的!

相关文章
|
3月前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1682 17
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
2月前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
42 3
|
3月前
|
机器学习/深度学习 数据采集 算法
【BetterBench博士】2024华为杯C题:数据驱动下磁性元件的磁芯损耗建模 Python代码实现
本文介绍了2024年中国研究生数学建模竞赛C题的详细分析,涵盖数据预处理、特征提取、模型训练及评估等多个方面。通过对磁通密度数据的处理,提取关键特征并应用多种分类算法进行波形分类。此外,还探讨了斯坦麦茨方程及其温度修正模型的应用,分析了温度、励磁波形和磁芯材料对磁芯损耗的影响,并提出了优化磁芯损耗与传输磁能的方法。最后,提供了B站视频教程链接,供进一步学习参考。
162 6
【BetterBench博士】2024华为杯C题:数据驱动下磁性元件的磁芯损耗建模 Python代码实现
|
2月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
47 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
2月前
|
数据可视化 Serverless Python
Python小事例—质地不均匀的硬币的概率统计
Python小事例—质地不均匀的硬币的概率统计
57 0
|
2月前
|
开发者 Python
Python类和子类的小示例:建模农场
Python类和子类的小示例:建模农场
14 0
|
4月前
|
供应链 数据可视化 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
本文详细介绍了第十一届泰迪杯数据挖掘挑战赛B题的解决方案,涵盖了对产品订单数据的深入分析、多种因素对需求量影响的探讨,并建立了数学模型进行未来需求量的预测,同时提供了Python代码实现和结果可视化的方法。
130 3
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
|
4月前
|
数据建模 大数据 数据库
【2023年4月美赛加赛】Y题:Understanding Used Sailboat Prices 建模思路、建模方案、数据来源、相关资料、Python代码
本文提供了2023年MCM问题Y的解题思路、建模方案、数据来源、相关资料以及Python代码,旨在建立数学模型解释二手帆船的挂牌价格,并分析地区对价格的影响,以及在香港(SAR)市场上的应用。
48 1
【2023年4月美赛加赛】Y题:Understanding Used Sailboat Prices 建模思路、建模方案、数据来源、相关资料、Python代码
|
4月前
|
机器学习/深度学习 搜索推荐 数据可视化
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题二
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛C题的解决方案,重点讲解了如何构建招聘与求职双向推荐系统的建模过程和Python代码实现,并对招聘信息和求职者信息进行了详细分析和画像构建。
80 1
|
4月前
|
机器学习/深度学习 数据采集 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二
本文提供了第十一届泰迪杯数据挖掘挑战赛B题问题二的详细解题步骤,包括时间序列预测模型的建立、多元输入时间预测问题的分析、时间序列预测的建模步骤、改进模型的方法,以及使用Python进行SARIMA模型拟合和预测的具体实现过程。
81 1