天天看点

《贝叶斯思维:统计建模的Python学习法》一1.6 M&M豆问题

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

m&m豆是有各种颜色的糖果巧克力豆。制造m&m豆的mars公司会不时变更不同颜色巧克力豆之间的混合比例。

1995年,他们推出了蓝色的m&m豆。在此前一袋普通的m&m豆中,颜色的搭配为:30%褐色,20%黄色,20%红色,10%绿色,10%橙色,10%黄褐色。这之后变成了:24%蓝色,20%绿色,16%橙色,14%黄色,13%红色,13%褐色。

假设我的一个朋友有两袋m&m豆,他告诉我一袋是1994年,一袋是1996年。

但他没告诉我具体哪个袋子是哪一年的,他从每个袋子里各取了一个m&m豆给我。一个是黄色,一个是绿色的。那么黄色豆来自1994年的袋子的概率是多少?

这个问题类似于曲奇饼问题,只是变化了我抽取样品的方式 (碗还是袋)。这个问题也给了我一个机会演示纸面方法:也就在仅仅在纸上画画就可以解决类似这样的问题(译注:作者为后续章节的计算型方法铺垫)。在下一章中,我们将以计算方法解这些问题。

第一步是枚举所有假设。取出黄色m&m豆的袋子称为袋1,另一个称为袋2,所以假设是:

a:袋1是1994年的,袋2是1996年的。

b:袋1是1996年的,袋2是1994年的。

接着我们设计一个表格,每行表示每个假设,每列表示贝叶斯定理中的每一项:

《贝叶斯思维:统计建模的Python学习法》一1.6 M&M豆问题

第一列表示先验。基于问题的声明,选择p(a)=p(b)= 1/2是合理的。

第二列表示似然度,表明了问题的背景信息。举例来说,如果a为真,黄色m&m是来自1994年的袋概率20%,而绿色来自1996包的概率为20%。因为选择是独立的,我们将其相乘以得到联合概率。

第三列由前两列得到。此列的总和270是归一化常数(译注:参考全概率公式)。为了得到最后一列的后验概率,我们将第三列的值归一化后得到第四列的值。

就是这样。简单吧?

还有,你可能会被一个细节所困扰。我将p(d|h)写成了百分数的形式而不是概率形式,这意味着它没有除以因子10000。但是当我们将其除以归一化常数时就抵消了,因此这不影响结果。

当设定的假设是互斥和穷举的,你可以将似然度乘以任何因子,如果方便,将同一个因子应用到整列上。