跳转至

贝叶斯定理

从条件概率说起

掷两次骰子,可能出现的结果有6x6=36种

如果我们定义事件A为:至少有一个骰子是 2,那么事件 A 的样本空间如下: 事件A一共有11种情况,我们计算事件A的概率P(A): 我们再定义事件B:两个骰子之和为7,那么事件B的样本空间如下图绿色部分所示: 事件B一共有6种情况,我们计算事件B的概率P(B): 接下来我们用P(A∩B)表示A和B同时发生的概率,A∩B就是A和B的交集,如下图蓝色部分所示: 显然A∩B只有两种情况,因此,计算P(A∩B): 接下来我们就可以讨论条件概率了。我们用P(A|B)表示在B发生的条件下,A发生的概率。由于B已经发生,所以,样本空间就是B的样本数量6,而要发生A则只能是A、B同时发生,即A∩B,有两种情况。

因此,计算P(A|B)如下: 同理,我们用P(B|A)表示在A发生的条件下,B发生的概率。此时,分子仍然是A∩B的样本数量,但分母变成A的样本数量: 可见,条件概率P(A|B)和P(B|A)是不同的。

我们再回到A、B同时发生的概率,观察P(A∩B)可以改写为: 同理,P(A∩B)还可以改写为: 因此,根据上述两个等式,我们推导出下面的等式: 把左边的P(A∩B)去掉,我们得到等式: 最后,整理一下等式,我们推导出贝叶斯定理如下: 这就是著名的贝叶斯定理,它表示,当出现B时,如何计算A的概率。

很多时候,我们把A改写为H,把B改写为E H表示Hypothesis(假设),E表示Evidence(证据),贝叶斯定理的意义就在于,给定一个先验概率P(H),在出现了证据E的情况下,计算后验概率P(H|E)。

关于疾病的例子

已知有一种疾病,发病率是 0.1%(先验概率),针对这种疾病的测试非常准确: - 如果有病,则准确率是 99%(即有1%未检出阳性) - 如果没有病,则误报率是 2%(即有2%误报为阳性)

现在,如果一个人测试显示阳性,请问他患病的概率是多少?

用H表示患病,E表示测试为阳性,那么,我们要计算在测试为阳性的条件下,一个人患病的概率,就是计算P(H|E)。根据贝叶斯定理,计算如下:

P(H)表示患病的概率,根据发病率可知,P(H)=0.1%

P(E|H)表示在患病的情况下,测试为阳性的概率,根据“如果有病,则准确率是99%”可知P(E|H)=99%

P(E)表示测试为阳性的概率

假如对10万人进行检测,根据发病率可知:

  • 有100人是病人,另外99900是健康人;
  • 对100个病人进行测试,有99人显示阳性,另有1人未检出(阴性);
  • 对99900个健康人进行测试,有2%=1998人显示阳性(误报),另有98%=97902人为阴性。

所以,对于10万人的样本空间来说,事件E(显示阳性的概率)为 (99+1998)/100000=2.097%。

带入贝叶斯定理,计算P(H|E):

计算结果为患病的概率为4.721%,这个概率远小于99%,且与大多数人的直觉不同,原因在于庞大的健康人群导致的误报数量远多于病人,当出现“检测阳性”的证据时,患病的概率从先验概率0.1%提升到4.721%,还远不足以确诊。

另一种表示

在上述计算中,我们发现计算P(E)是比较困难的,很多时候,甚至无法知道P(E)。此时,我们需要贝叶斯定理的另一种表示形式。

我们用P(H)表示H发生的概率,用H表示H不发生,P(H)表示H不发生的概率。显然P(^H)=1-P(H)。

下图红色部分表示H,红色部分以外则表示^H:

事件E用绿色表示:

可见,P(E)可以分为两部分,一部分是E和H的交集,另一部分是E和^H的交集:

根据上文的公式P(A∩B)=P(A|B)xP(B),代入可得:

把P(E)替换掉,我们得到贝叶斯定理的另一种写法:

用这个公式来计算,我们就不必计算P(E)了。再次回到开头的问题:

已知有一种疾病,发病率是0.1%。针对这种疾病的测试非常准确:

  • 如果有病,则准确率是99%(即有1%未检出阳性);
  • 如果没有病,则误报率是2%(即有2%误报为阳性)。

现在,如果一个人测试显示阳性,请问他患病的概率是多少?

  • P(E|H)表示患病时检测阳性的概率=99%;
  • P(H)表示患病的概率=0.1%;
  • P(E|^H)表示没有患病但检测阳性的概率=2%;
  • P(^H)表示没有患病的概率=1-P(H)=99.9%。

代入公式,计算:

检测为阳性这一证据使得患病的概率从0.1%提升到4.721%。假设这个人又做了一次检测,结果仍然是阳性,那么他患病的概率是多少?

我们仍然使用贝叶斯定理计算,只不过现在先验概率P(H)不再是0.1%,而是4.721%,P(E|H)和P(E|^H)仍保持不变,计算新的P(H|E):

结果为71%,两次检测为阳性的结果使得先验概率从0.1%提升到4.721%再提升到71%,继续第三次检测如果为阳性则概率将提升至99.18%。

可见,贝叶斯定理的核心思想就是不断根据新的证据,将先验概率调整为后验概率,使之更接近客观事实。

贝叶斯的应用

在统计学里,长期以来,有频率学派和贝叶斯学派两大学派。

这两大学派最根本的观点在于看待世界的方式不同:

  • 频率学派认为世界是客观的,必须通过大量独立采样来获得统计均值,不能先给出一个主观的先验概率(假设);
  • 贝叶斯学派则认为概率是一种信念度,可以有非常主观的先验概率,然后,通过一次次采样结果修正先验概率,使之逼近客观事实。

这两大学派哪个才是正确的?其实都对,只是看待世界的角度不同。但是在现实世界中,除了抛硬币、掷骰子、玩老虎机等少数符合理想数学模型的场景,频率学派才能发挥作用。大多数需要我们估算概率的现实场景,只能用贝叶斯理论来指导实践。

举个例子,假设我住在市区,希望赶上飞机的概率不低于90%,那么我应该提前多久出发呢?我必须试验至少100次,看看样本空间,才能获得一个比较准确的统计均值。然而这是不现实的,因为我一年可能就坐几次飞机。我只能拍脑袋先估一个提前30分钟就够了,结果第三次就没赶上,这说明我必须修正我的先验概率,后续改为提前45分钟,才能提升赶上飞机的概率。

要把贝叶斯定理用到定量计算,必须得借助计算机。

以吴军老师在中文分词领域举的一个例子来说,对于一个句子:南京市长江大桥,可以有两种划分:

  • 南京市 / 长江大桥
  • 南京市长 / 江大桥

到底哪一种更合理?我们可以计算条件概率:

  • P(长江大桥|南京市) = 出现“南京市”时,出现“长江大桥”的概率;
  • P(江大桥|南京市长) = 出现“南京市长”时,出现“江大桥”的概率。

提前准备好大量的中文语料,计算出任意两个词的条件概率,我们就可以得出哪种分词更合理。

在互联网领域,凡是遇到“当出现xyz时应该推荐什么”这样的条件概率时,也总是能应用贝叶斯理论。

关于信念

我们再回顾一下贝叶斯定理:

稍微改一下,变为:

P(H)是先验概率,P(H|E)是后验概率,P(E|H)/P(E)被称为调整因子,先验概率乘以调整因子就得到后验概率。

我们发现,如果P(H)=0,则P(H|E)=0;如果P(H)=1,则P(E|H)=P(E),P(H|E)=1。

也就是说,如果先验概率为0%或100%,那么,无论出现任何证据E,都无法改变后验概率P(H|E)。这对我们看待世界的认知有重大指导意义,因为贝叶斯概率的本质是信念,通过一次次事件,我们可能加强某种信念,也可能减弱某种信念,但如果信念保持100%或0%,则可以做到对外界输入完全“免疫”。