贝叶斯概率的十层理解(1)

世界是我们的,也是你们的,但归根结底,世界是贝叶斯的。
—— 胡所巴道·丹史乎由谢道里斯基

希望这篇文章能够带大家一起了解神奇的贝叶斯概念,启发更多神奇的思考。

第一层 、基本知识:贝叶斯是谁?贝叶斯公式是什么?

托马斯·贝叶斯(Thomas Bayes,1702~1761)是 18 世纪英国的一位数学家、神学家和哲学家。他在概率论领域做出了重要贡献,被认为是概率论理论的创始人之一。
贝叶斯大概生活在咱们的康乾盛世的雍正乾隆帝在位时期,他比牛顿小40多岁,和欧拉差不多大,贝叶斯死后几年,数学王子高斯就出生了。所以,贝叶斯可能见过老年的牛顿,但肯定没遇到过高斯。

贝叶斯的时代

贝叶斯最大的贡献就是总结出了贝叶斯定理,这个牛到可以统治宇宙的公式就是:

P(B|A)=\frac{P(B)*P(A|B)}{P(A)}=P(B)*\frac{P(A|B)}{P(A)}

这个公式里面P(A|B)表示B事件发生的条件下A事件发生的概率,同样,P(B|A)就是A事件发生的条件下B事件发生的概率。

第二层、套用公式:怎么用贝叶斯公式解决问题?

我们两个例子。

第一个例子

二姨给你介绍了个男朋友,只说是上班族,其他什么信息也没给就安排你们见面,一见面,你发现他是个秃头,现在就问,你认为这人是程序员还是其他普通上班族?有多大概率是程序员?

30%程序员秃头

已知40%的程序员都秃头,而其他普通上班族只有10%会秃头。那么你是否就认为他很可能是个程序员呢?

错!你不懂贝叶斯,我们看看贝神父怎么叫我们做人,科学计算已知秃顶的程序员概率有多大。

直接套用公式:

P(程|秃)=\frac{P(程)*P(秃|程)}{P(秃)}

分析一下。

  • 我们需要知道所有人里面程序员的概率P(程),估算一下,所有上班族里面大概10%是程序员,就是P(程)=0.1

  • P(秃|程)我们已知等于30%。

  • P(秃)是多少呢?就是所有人里面有多大概率是秃头,100人为例,10个程序员40%就是4个秃头,另外90人里面10%就是9个秃头,加一起得到P(秃|所有)=P(秃且程|所有)+P(秃且非程|所有)=4\%+9\%=13\%

带入公式:

P(程|秃)=\frac{P(程)*P(秃|程)}{P(秃)}=\frac{10\%*40\%}{13\%}=\frac{0.1*0.4}{0.13}=4/13\approx0.3

得到最终结论:此人仅有不足三分之一的可能是程序员

第二个例子

这个有点难,咱们慢慢来。

你去医院检查是否得了某种癌症,检查结果是:你阳了...医院检查结果的正确性是80%,那么就问,你现在应该慌不慌?应该有多慌?

估计你要吓死了。但作为一个学过贝叶斯公式并且掌握小学数学的人,我们来算算看,你现在有多大概率真的得了这种癌症,就是P(病|阳)的值,即拿到阳性报告的时候,你的患病可能是多大。

先套公式:

P(病|阳)=\frac{P(病)*P(阳|病)}{P(阳)}

分析一下。

  • 首先我们必须知道所有人里面患这个病的概率P(病),假设在所有人里面这个癌症的患病率是5%,即P(病)=5\%

  • 难点在这个90%正确率怎么理解。100个报告里面,有80个是正确的(阳了就真有病,阴了就真没病),还有20个是错误的(没病但阳了,有病却阴了)。那么,有病的里面阴了几个,没病的里面又阳了几个呢?我们假设认为对于有病和没病的人,报告错误率都是20%,即5个有病的人来了会错报1个阴性,95个没病的人来了也会错报19个阳性。所以P(病且阳|所有)=5\%*80\%=4\%P(无病且阳|所有)=95\%*20\%=19\%

  • P(阳|所有)=P(病且阳|所有)+P(无病且阳|所有)=4\%+19\%=23\%

  • P(阳|病)=80\%

带入公式:

P(病|阳)=\frac{P(病)*P(阳|病)}{P(阳)}=\frac{5\%*80\%}{23\%}=4/23=17%

得出结论:你真正患病的可能性是17%,大概是六分之一

第三层、推理证明:颠覆认知的贝叶斯公式怎么来的?

开始之前我们做个小学三年级应用题:所有人里面有50%是男人,男人里面有10%是渣滓,请问,渣男占所有人的比例是多少?

答案是50\%*10\%=5\%,即

P(渣且男|所有人)=P(男)*P(渣|男)=50\%*10\%=5\%

忽略所有,可以直接简写为

P(渣男)=P(男)*P(渣|男)=5\%

现在我们可以开始了。

首先,我们知道下面这句是废话也是公理:

A事件发生且B事件也发生的可能性 = B事件发生且A事件也发生的可能性

就是:

P(A且B|所有)=P(B且A|所有)

例如:

P(男且渣|所有)=P(渣且男|所有)
P(秃且程|所有)=P(程且秃|所有)

好吧,你认为我在说废话,那就OK了,咱们继续。P(秃且程|所有)怎么计算呢?和算渣男概率差不多,就是100人里有多少是程序员,再乘以程序员里面有多少比例是秃子。

P(秃且程|所有)=P(程|所有)*P(秃|程)

同理,P(程且秃|所有)怎么计算呢?就是100人里有多少是秃子,再乘以秃子里有多少比例是程序员。

P(程且秃|所有)=P(秃|所有)*P(程|秃)

合在一起就是:

P(程|所有)*P(秃|程)=P(秃|所有)*P(程|秃)

简化去掉所有:

P(程)*P(秃|程)=P(秃)*P(程|秃)

移项除到右边:

P(秃|程)=\frac{P(秃)*P(程|秃)}{P(程)}

换成AB就是贝叶斯公式:

P(B|A)=\frac{P(B)*P(A|B)}{P(A)}

其实贝叶斯只是使用了小学三年级学会的乘法移项!


<未完待续>
下篇我们将关注贝叶斯因子以及更多有趣的相关算法和知识,敬请关注。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容