|
细说贝叶斯定理
本文试图从一个初学者的角度详详细细地,或者说啰啰嗦嗦地解说贝叶斯定理,希望能创造一个奇迹。
设S是一个很大元素数目的离散集合。
对于S中的任何元素的某种性质,可以进行某种观测(以下称为金标准),结果是 A 和 notA 二者之一。在进行了全部(或者足够多个)元素的金标准观测之后,我们可以算出结果为A的比例 P(A)。P是Probability的首字母。
对于S中的任何元素的这种性质,我们还可以进行第二种观测(且称之为银标准),结果是 B 和 notB 二者之一。在进行了全部(或者足够多个)元素的银标准观测之后,我们可以算出结果为B的比例 P(B)。
P(notA)和 P(notB) 的意义不言而明。显然:
P(notA)+P(A)=1, P(notB)+P(B)=1。
到此为止,金标准和银标准完全是平等的。
P(A) 和 P(B),是所谓基本比率(base rate)或先验概率。下面我们来定义所谓条件概率。
把S中所有金标准观测结果为A元素的集合记作S_A ,定义对S_A 进行银标准观测的结果为B的比率为 P(B|A),称作条件概率。显然我们可以类似地一共定义4x4=16个条件概率,它们加上4个先验概率就一共有20个概率。他们相互之间不是完全独立的,有一些数学关系。
为简单起见,通常我们假定 P(A|A)=P(B|B)=1,于是,P(notA|A)=P(notB|B)=0。
最后将只剩下3个独立参数。一般我们会选择P(A),P(B|A)和 P(notB|notA)为基本参数,并计算出P(B):
P(B)=P(B|A)P(A)+P(B|notA)P(notA)=P(B|A)P(A)+(1-P(notB|notA))(1-P(A))
为了计算P(A|B),我们要用到贝叶斯定理:
P(A|B)P(B)=P(B|A)P(A)
贝叶斯定理是可以从概率论的基本概念和公理系统中推导出来的;但是并不那么直观,所以才是贝叶斯的重大贡献。否则也不会以他的名字命名。
概率论的这一套符号系统很抽象,我也是看了好多遍才掌握了一点点。下面让我们剽窃张天蓉文章中的两个例子来说明,红色部分是我的注解。
(一)
某城市有两种颜色的出租车:蓝【A】和绿【notA】(市场比率15:85【P(A)=15%】)。一辆出租车夜间肇事后逃逸,但还好当时有一位目击证人,这位目击者认定肇事的出租车是蓝色的。但是,他“目击的可信度”如何呢?公安人员经过在相同环境下对该目击者进行“蓝绿”测试而得到:80%的情况下识别正确,20%的情况不正确【P(B|A)=P(notB|notA)=80%】。也许有读者立刻就得出了结论:肇事之车是蓝色的几率【P(A|B)】应该是80%吧。如果你作此回答,你便是犯了与上面例子中王宏同样的错误,忽略了先验概率,没有考虑在这个城市中“蓝绿”车的基本比例。
那么,肇事之车是蓝色的(条件)几率到底应该是多少呢?贝叶斯公式能给出正确的答案。首先我们必须考虑蓝绿出租车的基本比例(15: 85)。也就是说,在没有目击证人的情况下,肇事之车是蓝色的几率只有15%,这是“A=蓝车肇事”的先验概率P(A)= 15%。现在,有了一位目击者,便改变了事件A出现的概率。目击者看到车是“蓝”色的。不过,他的目击能力也要打折扣,只有80%的准确率,即也是一个随机事件(记为B)。我们的问题是要求出在有该目击证人“看到蓝车”的条件下肇事车“真正是蓝色”的概率,即条件概率P(A|B)。后者应该大于先验概率15%,因为目击者看到“蓝车”。如何修正先验概率?为此需要计算P(B|A)和P(B)。
因为A=车为蓝色、B=目击蓝色,所以P(B|A)是在“车为蓝色”的条件下“目击蓝色”的概率,即P(B|A)=80%。最后还要算先验概率P(B),它的计算麻烦一点。P(B)指的是目击证人看到一辆车为蓝色的概率,等于两种情况的概率相加:一种是车为蓝,辨认也正确;另一种是车为绿,错看成蓝。所以:
P(B) = 15%×80% + 85%×20% = 29% 【P(B)=P(B|A)P(A)+(1-P(notB|notA))(1-P(A))】
从贝叶斯公式:
【P(A|B)=41% !】
可以算出在有目击证人情况下肇事车辆是蓝色的几率=41%,同时也可求得肇事车辆是绿车的概率为59%【P(notA|B)=1-P((A|B)=59%】。被修正后的“肇事车辆为蓝色”的条件概率41%大于先验概率15%很多,但是仍然小于肇事车可能为绿的概率0.59。
在这个例子中,车子是蓝还是绿自然有金标准,目击者的观测是银标准。
(二)
王宏去医院作验血实验,检查他患上了X疾病的可能性,其结果居然为阳性【B】,把他吓了一大跳,赶忙到网上查询。网上的资料说,实验总是有误差的,这种实验有“百分之一的假阳性率和百分之一的假阴性率”。这句话的意思是说,在得病的人【A】中做实验,有1%的人是假阴性【P(notB|A)=1%】,99%的人是真阳性【P(B|A)=99%】。而在未得病的人【notA】中做实验,有1%的人是假阳性【P(B|notA)=1%】,99%的人是真阴性【P(notB|notA)=99%】。于是,王宏根据这种解释,估计他自己得了X疾病的可能性(即概率)为99%。王宏想,既然只有百分之一的假阳性率,那么,百分之九十九都是真阳性,那我已被感染X病的概率便应该是99%【P(A|B)=99%? 错!】。
可是,医生却告诉他,他被感染的概率只有0.09【P(A|B|=9%】左右。这是怎么回事呢?王宏的思路误区在哪里?
医生说:“百分之九十九?哪有那么大的感染几率啊。99%是测试的准确性,不是你得病的概率。你忘了一件事:这种X疾病的正常比例是不大的,1000个人中只有一个人有X病【P(A)=0.1%】。”
医生的计算方法是这样的:因为测试的误报率是1%【P(B|notA)=1%】,1000个人将有10个被报为“假阳性”,而根据X病在人口中的比例(1/1000=0.1%),真阳性只有1个。所以,大约11个【P(B)=1.1%】测试为阳性的人中只有一个是真阳性(有病)的【P(A)=0.1%】,因此,王宏被感染的几率是大约1/11,即0.09(9%)【P(A|B|=9%】。
王宏想来想去仍感糊涂,但这件事激发了王宏去重温他之前学过的概率论。经过反复阅读,再思考琢磨医生的算法之后,他明白了自己是犯了那种叫做“基本比率谬误”的错误,即忘记使用“X病在人口中的基本比例(1/1000)这个事实。
在这个例子里,假定有一个金标准来定义人是否有病。验血试验是银标准。
在这两个例子中,都有P(B|A)=P(notB|notA),并且被叫做准确率,这只是一种特殊情况,其实两者相等不是必须的。
真假阴性和阳性的比率这种说法似乎容易引起误会,必须严格定义而不能望文生义。例如,P(B|notA) 和 P(notA|B) 都可能被称作假阳性率。在(二)疾病诊断的例子中,它们分别是1%和91%,相差悬殊。
这里定义的基本概念和公理系统是和教科书上完全一致的,没有任何创新。任何理论都有一定的适用范围。不要在适用范围之外或者另外的公理系统的基础上对本文进行批评,那样做毫无意义。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-21 22:54
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社