“贝叶斯定理”在生活中很有用,它到底是如何算出来的?
作者:林泽民,美国明尼苏达大学政治学博士, 现任教于美国德州大学奥斯汀校区政府系;巫俊穎。本文经授权刊发。
对于许多上过统计课的学生而言,贝叶斯定理(Bayes Theorem)是又熟悉又陌生的。熟悉,是因为绝大多数的大学或研究所统计课堂都有教贝式定理;陌生,则是因为许多学生上完统计课之后,对于贝叶斯定理仍然一知半解,甚至视为畏途。
根据我们的观察,造成此现象的原因有二:首先,一般基本统计学教科书虽然会提到贝叶斯定理,但绝大多数的教科书仍然只涵盖以P值检定为基础的传统“次数统计推论”(frequentist statistical inference)。学生即使学了贝叶斯定理,也只把它当作一个数学公式,不知道它对学习统计学有什么帮助,更不知道它具备生活实用性。其次,贝式定理的数学表示式难以背诵;即使一时背了,也容易忘记。
Source:Wikimedia
以下是教科书上常见的贝式定理定义:假定事件A和事件B发生的机率分别是Pr(A) 和 Pr(B),则在事件 B 已经发生的前提之下,事件A 发生的机率是(其中“¬”在逻辑上为“非”的符号:“¬A”即“非A”):
如果没有充分理解机率运算的定义和法则,实在难以理解此公式背后的逻辑。许多学生因此强记上述公式以准备考试,只求能解题而不求理解;公式反而成为学习贝叶斯定理的主要障碍。
本文的主要目的是要破除许多学生对于贝式定理“困难又不实用”的刻板印象。事实上,我们生活之中有许多情况必须要运用贝式定理的逻辑思考,否则便容易产生偏差甚至陷于谬误。
被撞到的都是好人?让贝叶斯定理算给你看看
举例来说,每逢有人因车祸不幸横死,当记者报导死者是孝子,我们常唏嘘说为何横死的都是好人?这样的想法,其实犯了诺贝尔经济学奖得主、心理学家Daniel Kahneman 所说的“基率谬误”(baserate fallacy)。简单来说,就是没有把“绝大多数人都是好人”这个“基率”——贝叶斯定理所谓的先验机率(prior probability)——纳入考量所致。因为绝大多数人都是好人,即使老天爷真的大致上赏善罚恶,横死的人也会大多是好人,更不用说车祸应该跟善恶无关了。
比如我们假设每100人中只有1人(1%)是十恶不赦的“坏人”,其余99人(99%)都是“好人”。再假设90%的坏人果然都遭车祸横死,而只有10%的好人意外横死。这样老天算是有眼了,可是如果今天有人意外横死,请问他是好人的机率多少呢?用贝叶斯定理可以算出Pr(好人|横死)=0.92,也就是横死的人中有92%会是“好人”,只有8%是坏人!这正是因为大部分人都是好人,出事的当然容易是好人,即使老天有眼也是一样。
贝叶斯定理的原理就是在先验机率的基础上,纳入新事件的资讯来更新先验机率,这样算出来的机率便叫做后验机率(posteriorprobability)。以前述好人横死的例子来说,先验机率的分配是Pr(好人)=0.99及Pr(坏人)=0.01。在无其他资讯的情况下,我们在街上随机遇到一个人,此人为好人的机率是0.99。
但现在此人被车子撞死了,根据我们对老天有眼的假设(Pr(横死|好人)=0.1 及 Pr(横死|坏人)=0.9),好人不容易横死,而此人横死了,这新事件的资讯可以让我们用贝叶斯定理来计算后验机率Pr(好人|横死)=0.92,也就是此人为好人的机率变小。新事件的资讯改变了我们原来的估计,这就是所谓“贝氏更新”(Bayesian updating)。
如果我们没有把先验机率纳入计算,我们很可能因为相信老天有眼,横死的应该大多是坏人,就断此人很可能是坏人。而若确定此人是好人,我们就唏嘘不已,甚至怨骂老天。这两种反应的人其实都犯了“基率谬误”。当然,如果车祸跟人的好坏无关,也就是不论好人坏人横死的机率都一样,则有人横死的新事件是不会更新我们对他是好人或坏人的基率的。
Kahneman在《快思考,慢思考》一书中举了一个也是跟车祸有关的“基率谬误”的例子。某天夜晚城里发生了一件车祸,肇事的车子逃逸,但有证人指认那是一辆蓝色的计程车。城里只有蓝色、绿色两种计程车;绿色车占85%,蓝色车仅占15%。法庭检验证人在夜晚识别车色的能力,发现他识别正确的机率是80%,而识别错误的机率是20%。
当Kahneman做实验问受测者肇事车辆为蓝色的机率多少时,大部分人的答案是80%。这也是犯了“基率谬误”的答案,也就是城里“绿色车占85%,蓝色车占15%”这个基率所包含的资讯被忽略了。如果把基率纳入考量,贝叶斯定理给的答案是Pr(肇事车真为蓝色|证人指认为蓝色)=0.41,只有一般人想像中的一半!
现实生活中类似的例子很多:身体检查某项检验得到阳性反应、职棒大联盟球员没通过药检、犯罪现场采得的DNA与调查局资料库CODIS中某人的DNA相符、甚至统计上P值检定得到显著结果。这些情况中,如果我们不了解贝叶斯定理,我们很可能就会在机率估计上犯错。那么贝叶斯定理究竟要如何拿来计算正确的后验机率呢?本文将用浅易的途径来介绍贝叶斯定理的计算方法。
联合机率、边际机率以及条件机率三种必须认识的机率
欲了解贝叶斯定理的逻辑,必须先了解三种不同的机率:联合机率(jointprobability)、边际机率(marginalprobability)以及条件机率(conditionalprobability)。
假设有两个随机变数(randomvariable)X和Y,变数X有1, 2, …, J共J个可能的值,而变数Y有1, 2, …, I共I个值。在此可以将变数的“值”视为前面提及的“事件”(event),举例来说,X代表大联盟球员有没有使用禁药,X=1代表“没有使用”,X=2代表“有使用”;Y代表药检的结果,Y=1代表“阳性反应”,Y=2代表“阴性反应”。这里X=1、X=2、Y=1、Y=2都是其发生有一定机率的事件。
如果我们想要检视X和Y之间的关系,可以绘制出下列交叉表:
我们先从概念开始介绍。表一所陈列的Y跟X联合起来所有可能的结果可以用{(1,1), (1,2), …,(I,j), …,(I,J)} 这个集合来表示,这就是Y跟X联合起来的“样本空间”,它一共有IxJ个可能结果。每一个结果所对应的机率是Y跟X的联合机率,也就是属于Y的事件Y=i和属于X的事件X=j联合发生的机率,数学表示为Pr(Y=I,X=j)=πij。例如π11就是Y=1和X=1这两个事件都发生的机率,π12则是Y=1和X=2这两个事件都发生的机率,以此类推。如果我们把所有可能结果的机率加总,从π11加到πIJ,总和必须是1。
边际机率则是属于Y或X的单一事件发生的机率。表一中,Y的样本空间是{1, 2, …, I, …, I};属于Y的事件发生的边际机率用Pr(Y=i)=πi.表示。X的样本空间是{1, 2, …, j, …, J};属于X的事件发生的边际机率用Pr(X=j)=π.j表示。例如π1.就是Y=1这个事件发生的机率,π.2则是X=2这个事件发生的机率,以此类推。Y或X所有边际机率的总和也必须是1。在表一里,我们以行或列的总和来计算边际机率。边际机率其实就是单一变数的机率分配,之所以称为边际机率指是因为我们从表一的双变数联合机率分配的脉络出发,导出单一变数分配的缘故。
最后,条件机率是在属于X的事件已经发生的前提之下,属于Y的事件发生的机率,或是在属于Y的事件已经发生的前提之下,属于X的事件发生的机率。例如Pr(Y=i|X=j)是在X=j这个事件已经发生的前提下,Y=i这个事件发生的机率;而Pr(X=j|Y=i)是在Y=i这个事件已经发生的前提下,X=j这个事件发生的机率。
条件机率的样本空间只是联合机率样本空间的一部份。在表一中,Y跟X联合起来的样本空间一共有IxJ个可能结果。但当我们以X=j这个事件已经发生为前提时,Y这个变数的样本空间就被局限在{(1,j), (2,j), …,(I,j), …,(I,j)} 这I个结果的范围里。同样的,当我们以Y=i这个事件已经发生为前提时,X这个变数的样本空间就被局限在{(I,1), (I,2), …,(I,j), … (I,J)}这J个结果的范围里。因为样本空间改变,机率也会有所不同。其计算如下:
这也就是说,条件机率等于联合机率除以条件变数的边际机率。反过来讲,联合机率等于条件机率乘以条件变数的边际机率,如下式所示:
此公式称为机率的乘法法则(MultiplicationRule),这个法则对于理解贝式定理至关重要。
前述提及条件机率有两种,分别为Pr(Y=i|X=j)以及Pr(X=j|Y=i),差别仅在于是以X变数的特定事件为给定前提,还是以Y变数的特定事件为给定前提。表一中,因为X是“行”(column,台湾称“行”,中国大陆称“列”)的变数,我们把以X变数特定事件为给定前提的条件机率称之为“行的条件机率”(columnconditional probability);如果是以Y变数特定事件为给定前提的条件机率,因为Y是“列”(row,台湾称“列”,中国大陆称“行”)的变数,我们称之为“列的条件机率”(rowconditional probability)。
Pr(Y=i|X=j)以及Pr(X=j|Y=i)这两个机率,我们可以说它们互为“反机率”(inverseprobability)。我们以X和Y分别只有两个值为例,以表二和表三加以说明:
贝叶斯定理算什么?怎么算?
接下来要进入本文的主题了,究竟贝叶斯定理是什么,怎么算?
说穿了,贝叶斯定理就是将行的条件机率转变成列的条件机率,或是将列的条件机率转变成行的条件机率。贝叶斯定理公式看似复杂,背后逻辑其实相当简单,它就是一个将“给定X 事件已发生的前提下,Y事件发生的条件机率”转变成“给定Y 事件已发生的前提下,X事件发生的条件机率”的过程而已。换句话说,贝叶斯定理就是在算反机率。
我们先用一个简单但实用的例子来说明这个观念。这个例子出自《美国顶级学术期刊宣布禁用p值,原来p值很危险》一文:
美国职棒大联盟(MajorLeague Baseball)抽查球员是否使用禁药PED(performanceenhancing drugs),结果某明星球员药检测出有阳性反应。——我们要问的是:这位明星球员其实是清白的机率是多少?
要算这个机率, 我们必须要有球员是否使用PED 的先验机率,也就是在还未对球员实施药检之前,我们必须先对他是否使用PED 的机率有一个初步估计。这个估计可能相当主观,但也未尝不能用客观的数据加以估计,比如之前抽检的结果。另外,我们还必须知道药检的准确率,也就是球员真有使用PED 时药检结果呈现阳性的机率,和球员没有使用PED 时药检结果呈现阴性的机率。
假设我们拥有的这两项资讯如下:
1. 根据以前的药检结果,我们合理估计大约有 6% 大联盟球员有使用PED。
2. 药检的准确率为 0.95:如果球员真的使用了 PED,药检结果呈现阳性的机率是 0.95;而如果球员没有使用 PED,药检结果呈现阴性的机率也是 0.95。(这两个机率不必一样。)
第一项资讯提供了贝叶斯定理所需要的先验机率,也就是在明星球员还没实施药检前,我们对他是否使用PED 最好的猜测只能是0.06的机率有使用,0.94的机率没使用。第二项资讯告诉我们大联盟的药检的“伪阳性”(falsepositive)机率──球员并未使用PED但药检结果呈阳性反应的机率──是0.05,“伪阴性”(falsenegative)机率—球员有使用PED 但药检结果呈阴性反应的机率──也是0.05。
如果我们的明星球员药检呈阳性反应,我们可能会认为药检结果错误的机率只有0.05。但这是没有考虑先验机率的想法,我们这样想就是犯了“基率谬误”。要考量先验机率,必须要使用贝叶斯定理来算后验机率,也就是要算出“伪阳性的反机率”。
我们用 Y 来代表“药检结果是阳性还是阴性”的随机变数;Y=1代表药检结果呈阳性反应,Y=2代表药检结果呈阴性反应。我们再用X来代表“球员有没有使用PED”的随机变数;X=1代表没有使用,X=2代表有使用。这样定义之后,我们可以看出:先验机率是X的边际机率Pr(X=1)=0.94,Pr(X=2)=0.06。药检的准确率和伪阳性、伪阴性机率都是行的条件机率:Pr(Y=1|X=1)=0.05,Pr(Y=2|X=1)=0.95,Pr(Y=1|X=2)=0.95,Pr(Y=2|X=2)=0.05。我们将这些数据放到表二之中可以得到下列表四:
前面说过贝式定理就是将行的条件机率转变成列的条件机率,或是将列的条件机率转变成行的条件机率。现在我们已经有行的条件机率了,那么怎么求列的条件机率呢?首先我们必须先要算出Y跟X的联合机率和Y的边际机率。算联合机率必须使用机率的乘法法则
也就是把行的条件机率跟X的边际机率相乘。就是在这里,我们必须要用到X的先验机率!联合机率算出来之后,把各列的联合机率加总就得到Y的边际机率:
有了联合机率跟Y的边际机率,我们就可以轻易计算列的条件机率了:
事实上,如果我们只是要算“药检结果是阳性而实际上球员是清白的机率”,我们只要算左上角Pr(X=1|Y=1) 这个机率就够了:
所以答案是“药检结果是阳性而实际上球员是清白的机率”不是0.05而是0.452。这个机率相当高!当然,在此例子之中用的药检准确率只是假设的数值,然而这结果也显示即使药检准确率看似不低,实际上会冤枉好人的机率超乎我们的想像。其实,即使药检的准确率高达99%,“药检结果是阳性而实际上球员是清白的机率”仍然高达0.137;伪阳性的反机率比伪阳性的机率仍然高很多。读者可以尝试用这里介绍的步骤算出这个数值。
以下我们提供第二个例子:用贝叶斯定理来求解有名的“蒙提霍尔”电视游戏问题。
蒙提霍尔问题:三扇门选一,赢得汽车大奖
这是美国电视台一个相当有名的电视游戏,相信不少读者都已听过,我们在此简单介绍一下。这个游戏一开始,主持人(MontyHall)给妳看三道门。他告诉妳:
三道门中,有一道门后面有一辆汽车,另外两道门后面各有一只山羊。
Monty 要妳挑选一道门,但先不要打开。妳挑定了一道门之后,Monty打开另外两道门之一,显示门后有一只山羊。这时Monty 问妳要维持本来选定的门,还是要换选那一道没开的门。如果妳选到藏有汽车的那道门,便可赢得汽车,否则便赢到山羊。(如果想看更详细的游戏说明,可参考维基百科的蒙提霍尔问题条目)。
这个游戏的答案是要换,理由很简单,并不需要用贝叶斯定理来算。因为参赛者原来随机选择的门可以猜中汽车的机率是1/3,那么汽车在另两个门其中之一后面的机率就是2/3,然而现在Monty 开了两个门其中之一,其后并无汽车,那么这2/3 的机率便完全属于另一道门了!参赛者如果换门,抽中汽车的机率将加倍!
虽然如此,当号称全世界IQ 最高的专栏作家Marilyn vos Savant 这样解释时,很多读者不相信。包括数学教授在内的众多读者都批评她,说她错了。这些读者认为还未开的两道门可以猜中汽车的机率应该一样,换门并没有用。
因为这个问题相当有趣,而且比上例要复杂些,这里我们用它来帮助我们学习贝叶斯定理。在此例子之中有两个变数:汽车的位置和主持人开启的门,两个变数各自有三种可能结果:1号、2号以及3号门,交叉相乘可以有九种可能的事件组合。
我们假设参赛者一开始猜选的门为1号门(在下表中用【1】表示),接着主持人要开启2号或 3号门之中后面藏有山羊的那一道门。此时我们必须要知道:
1. 按照规则,在参赛者选了 1号门之后,主持人就不能开启 1号门,不论 1号门后面是山羊或汽车都是如此;
2. 哪一号门会被主持人开启?这事件的机率皆为条件机率,因为主持人是在已知汽车是在哪一道门后面的前提下做出的选择;
3. 主持人理所当然不会开启后面有汽车的那道门。我们以M代表主持人做出的选择。
如果汽车就在 1号门后面,那 2号和 3号门后面皆为山羊,因此在参赛者猜了1号门的情况下,主持人可从2号及 3号门之中随机选一道门开启,因此Pr(M=2|C=1) 与Pr(M=3|C=1) 条件机率皆为1/2。如果汽车在 2号门后面而参赛者猜了1号门,主持人在不能开启1号门和 2号门的情况下只能开启3号门,因此Pr(M=3|C=2)=1,此规则也适用在汽车在3号门后面的情况。当然,参赛者只能看到主持人开了什么门,根本不知道主持人葫芦里卖什么药。
据此,我们可以填出表七的先验机率及条件机率并以之求得表八的联合机率:
接下来就是直接求列的条件机率了:
这个表第二列的诠释如下:假设主持人开启了2号门,则门后是汽车的机率为0(按照规则),而参赛者维持1号门和改变主意改选3号门这两种策略抽中汽车的机率分别是1/3和 2/3。这两个机率是“在已知主持人开启2号门的给定前提之下,汽车在1号或 3号门后面”的列的条件机率,在已知所有联合机率的情况下,我们可以用条件机率的定义轻易算得:
这就是为何参赛者更改选择至3号门抽中汽车的机率(2/3)会比维持原初1号门猜测而抽中汽车的机率(1/3)还要高的由来。有兴趣的读者不妨试算“在主持人开启3号门的前提下”的条件机率,会发现结果仍是一致的:更换选择抽中汽车的机率仍是2/3,不更换抽中汽车的机率仍是1/3。
正是因为一开始参赛者猜对的机率是1/3、猜错的机率是2/3,致使主持人开启一道后面是山羊的门的时候,如果参赛者换选仅剩的那道门会有2/3 的机率猜对。贝式定理以数学方式厘清了这一点。
贝式定理,就在你的生活中
贝式定理在统计学的应用越见广泛,也让许多学生以为贝式定理只有跟“贝式统计推论”(Bayesianstatistical inference)相关,没用到贝式统计分析就不需要学会。其实贝式定理在生活之中是很有用的,本文以浅显的方式介绍贝式定理的逻辑和计算方法,不仅期望读者在学贝叶斯定理时确实理解那些复杂公式的由来,也希望读者将贝式定理的逻辑思维运用到日常生活之中。要学会贝叶斯定理才能避免“基率谬误”,正确地用新事件的资讯来更新我们原所信仰的先验机率。