Jade Dungeon

三门问题

直觉与计算

概率的概念就像信念一样,存在于人们朦胧的直觉中,经过学校教育,表面上以为了解了,常常又与不同角度出发的直觉冲突矛盾,必须经过更深入的考察思索才能够理解。

蒙提霍尔问题的热议,便是一个例子。还没有一个简单的概率问题,长时间地迷惑着这么多的民众和学者,越是深入思考越发现问题。自1990,1991年纷起热议之后到了2000年,有超过75篇关于这个问题的论文发表在40多种学术和公众刊物上。两种结论反复交锋,不同观点一直纠缠,英文Wiki被双方不断更新资料的编辑之战折腾着。有的错误一直到了现在才发现。二十多年过去了,至今还偶尔在论文、书刊和电视上讨论。在公众书刊和百科中混杂着许多简单化似是而非的介绍。

我不想重述争议的细节和对错的结论,只是通过剖析典型的说法和认知的反复,来促进对概率概念和数学模型的理解。

蒙提霍尔问题(Monty Hall problem)【1】是一个概率猜谜游戏。1990年9月Craig F. Whitaker给《Parade》杂志「Ask Marilyn」专栏提了一个问题:

在蒙提霍尔游戏节目中,让你在三扇关着的门中选择,知道一扇门后面是跑车,其他俩都是山羊,当然希望选中赢的是跑车。当你选择后告诉他,比如说1号,主持人知道车在什么地方,他打开另外一扇门,比如说3号,是羊在那儿。然后问你,要不要改主意选2号。问:改选是不是更有利?

大多数人认为改不改都一样,因为没打开的两扇门后面,有车子的可能性都是1/2。Marilyn vos Savant认为1号门的可能性是1/3,2号现在有2/3。她给人们一个直观的想象:假如有辆车在一百万扇门中,你选了1号门,主持人知道车子在哪里,所以打开门时总是避免它,结果他打开了其余,除777777号之外所有的门,这时,你是不是很快改主意,选它了?【说法1】

这个专栏写手Marilyn vos Savant是吉利斯记录中拥有最高智商的女人,IQ 228。她在Washington University in St. Louis哲学系上了两年大学后,就退学挣钱,以便有自由来写作。

她的答案打击了大多数人们的直觉,当即收到几千封读者的反驳,11月著名问题专栏作家的Cecil Adams也在他「The Straight Dope」专栏里讨论这个问题,持相反看法。第二年《纽约时报》在头版登出这个问题,并且访谈了这问题中的节目主持人蒙提霍尔。他也不认可。vos Savant仍然坚持原来的答案。她摊上大事了,报社收到了一万多人来信,92%认为她错了,65%来自大学的信,多数是来自数学和科学的院系,都反对她的答案,认为这只是女人的直觉,劝她修了概率课后再谈这问题。其中有一千多个署名上有博士学位。即使她重申主持人必须打开有羊门的假设,提供了进一步证明后,仍被大多数有学问的人怀疑。没有被她说服的名人包括Paul Erdős【2】,他是最多产的数学家,研究的问题包括组合数学、图论、数论、经典分析、逼近理论、集合论和概率论。

反对者的直觉是:主持人打开了一扇门,里面是羊,这将三个选择去掉一个,一辆车子和一只羊分别在剩下两扇没打开的门中,它们各有1/2的概率是车。

vos Savant反驳说,如果一个UFO在主持人打开门后降临,看到两扇关着的门,外星人会同意这个概率1/2的结论,因为她缺乏这两扇门是怎么被留下来过程的信息。

有人用贝叶斯公式推出条件概率:假如A表示车子在1号门的事件,车子可能在任意一扇门后,所以它的概率P(A)=1/3;H表示主持人打开有羊门的事件,三扇门中两扇门后是羊,概率P(H)=2/3;记P(AH)为车子在1号门后而且主持人打开了有羊门的概率;如果车子是在1号门,打开是羊门的条件概率P(H|A)=1,则有P(AH)=P(H|A)P(A)=1/3;那么主持人打开有羊的门后,1号门后面有车子的条件概率P(A|H)= P(AH)/P(H)=(1/3)/(2/3)=1/2,这和大家的直观看法一样,这时没打开的那扇门(2号)有车的概率也就是1/2,所以换不换都一样。人们推论:主持人打开了有羊门的事件,减少了对1号门是羊的猜测,提高了1号门有车的概率,vos Savant的论断中坚持1号门的概率不变是错误的。【说法2】

看到不能说服读者,Vos Savant在专栏中画一个表,继续为她概率2/3的结论辩护。这里假设:客人先选1号门,主持人在2和3号中打开有羊的门。【3】这个表包含了所有的可能,不难看出换门赢的机会是不换的两倍。【说法3】

  1号门 2号门 3号门 不换的结果 换的结果
赛局1
赛局2
赛局3

维基百科上论证说【1】:「可以用逆向思维的方式来理解这个选择。无论参赛者开始的选择如何,在被主持人问到是否更换时都选择更换。如果参赛者先选中山羊,换之后百分之百赢;如果参赛者先选中汽车,换之后百分之百输。而选中山羊的概率是2/3,选中汽车的概率是1/3。所以不管怎样都换,相对最初的赢得汽车仅为1/3的机率来说,转换选择可以增加赢的机会。」【说法4】

这个说法看起来犀利无比,但总是让人不放心,觉得过于简单化,给人感觉像是「两个信封的问题(Two envelopes problem)」【4】里的逻辑

让你选择两个装钱的信封,已经知道一个比另一个多了一倍的钱。当你拿了一个还没打开时,有人劝你:另一个可能多一倍,也可能少了一半的钱,两种情况机会均等,平均起来另一个是手里那个1.25倍,所以换了还是合算。

问题是,你要拿了另一个也可以作同样的推理,这显然是个悖论。

这里有两个观点:大多数人认为,打开一扇有羊的门,这事件改变了其他门的概率,现在2号门有车的概率是1/2;vos Savant这边少数人认为,这不改变1号门的概率,所以2号门现在概率是2/3。

这两个观点,四种说法,到底哪些错了?为什么?

折服和逆袭

早在1975年,UC Berkeley生物统计学教授Steve Selvin寄给American Statistician期刊在题为「A Problem in Probability」上就提出了这个蒙提霍尔问题(Monty Hall problem)【1】,他借用美国电视比赛主持人蒙提霍尔的节目《Let’s Make a Deal》说这故事。在后续的文章中他用条件概率给出一个简单的证明【2】,但这两篇通讯都没有说服反对的学者。1987年Nalebuff在「The Journal of Economic Perspectives」难题的栏目,1989年Phillip Martin在「Bridge Today」的文章把这问题也归结为概率的计算。1990年Marilyn vos Savant【3】在「Ask Marilyn」专栏将这问题略加规范来讨论,引起了广泛的注意。自此以后,有很多的论文以此为题,并在概率和统计课堂和教科书上介绍。

Vos Savant在专栏解释之中澄清了一些含糊之处,规定:主持人必须在你选择的门之外,打开一扇有羊的门,然后让你做第二次选择。当然,车子的放置和参赛人的选择都是完全随机的。大家对这个澄清少有异议,人们关心的是真正有意义的问题,而不是其他无争议的变种。

这个vos Savant标准化的问题重述如下。

让你在三扇关着门中自由选择,知道一扇后面是车,其他俩都是羊。当你选择后告诉他,比如说1号,主持人知道车在什么地方,他必须在你选的门之外打开一扇有羊的门,比如说3号。然后问你,要不要改主意选2号。问:改选是否对选到车更有利?【问题1】

面对着上万个无法说服的读者,vos Savant在全国学校的数学课里组织一个统计实验,所有学校的实验结果都吻合她的结论,接着有几百个人以不同的方法,用计算机做仿真实验,有97%的结果同意改选是更有利的。至此,绝大多数人都被说服,同意了她的观点。决策研究学者Andrew Vazsonyi报道说:著名的数学家Paul Erdős直到这时才被说服了。

Vos Savant大获全胜,对于不符合她结论和实验结果的论断,都归结为不符合她标准问题的变种。那是另外一个问题的答案。但是对于喜欢思考的人,这还不够。我们要明白,反对的说法错在什么地方?结论对的,论证的逻辑也对吗?先看反对1号门概率不变,基于贝叶斯公式的推导。

【说法2】

  • 假如事件A表示车子在1号门,车子可能在任意一扇门后,所以它的概率\(P(A)=1/3\);
  • H表示主持人打开有山羊的门的事件,三扇门中两扇门后有山羊,概率\(P(H)=2/3\);
  • \(P(AH)\)是车子在1号门后而且主持人打开了有羊的门的概率;
  • 已知车子在1号门打开有羊门的条件概率\(P(H|A)=1\),不难看出\(P(AH)=P(H|A)P(A)=1/3\);
  • 那么主持人打开有羊的门后,1号门后面有车子是条件概率 \(P(A|H)=P(AH)/P(H)=(1/3)/(2/3)=1/2\),
  • 这和大家的直观一样,那没打开的那扇门(2号)有车的概率也是\(1/2\),所以换不换都 一样。

这说法错误在于,式子\(P(H)=2/3\)是主持人随机打开2号或3号门的概率。这就不能保证 打开的门后面总是羊。这不符合标准问题的题意。

按规定主持人必须打开有羊的门,这时应该是\(P(H)=1\),条件概率 \(P(A|H)=P(AH)/P(H)=1/3\),也就是说,在这规定下1号门的概率不变,那剩下那个门 有车的概率就是\(1 - 1/3 = 2/3\) 。

这证实了vos Savant的说法。反过来,如果主持人不是有意打开有羊的门,而是随意打开 一扇,这个场景碰巧里面是羊,那大家的直觉对,vos Savant就错了。但这不符合 标准问题的规定,是变种的问题了。

我们现在来看维基百科上的逆向思维解释【4】:

【说法4】无论参赛者开始的选择如何,在被主持人问到是否更换时都选择更换。如果参赛者先选中山羊,换之后百分之百赢;如果参赛者先选中汽车,换之后百分之百输。而选中山羊的概率是2/3,选中汽车的概率是1/3。所以不管怎样都换,相对最初的赢得汽车仅为1/3的机率来说,转换选择可以增加赢的机会。

这结论符合实验和vos Savant的结果,但这推断中没有包含主持人是怎样的选择。从【说法2】分析中知道,主持人是有意还是随意打开恰巧是有羊门的情况,这两者的结论是不同的。所以这个说法是糊里糊涂地蒙事了。

那vos Savant最初的说法也是非常简洁和直观的,这回答有问题吗?她这说法可以改写得更明确一点:

【说法1】 1号门有车的可能性是1/3,其他两个一共有2/3。主持人打开没有车的那扇门,给你机会改选另一扇门,等价于给你机会改选2号和3号联合在一起的两扇门,他实际上帮助你拿掉了没有车子的那扇门,让大家觉得只是选另一扇。

在这个说法里,确实必须有「主持人必须打开没车的门」这个规定才能成立。因为2号和3号之中至少有个是羊,是已知的事实,主持人揭示这事实的事件,并没有为它们之外的1号门提供新的信息。所以不改变了原来1号门的概率。它只改变2号和3号之间的概率分配。反之,如果主持人是随机的选择,他有打开是车的门的可能性,所以它并不单纯地揭露了这个事实。如果他是在3扇门之间的随机选择,这事件也给他选择范围中的1号门,提供了新的信息,改变了它的概率。这就能解释随机选择的结论。

主持人即使必须只在2号和3号之中打开一扇有羊的门,也改变了2号和3号之间的概率分配。这个认知,让我们觉得这和具体的场景有关系,有必要重新审视一遍这个问题。考虑【问题1】举例说明的这个具体场景:

参赛人选择了1号门,主持人打开3号门里面是羊,问:要不要改选2号?

不难用贝叶斯公式计算这个条件概率。记事件S为参赛人选择1号门,Z为主持人打开有羊的3号门,A、B、C分别为车子在1、2、3号门,在这个场景下2号门有车的条件概率可以写成:P(车子在2号门 | 主持人打开了有羊的3号门,参赛人选择1号门),即

\[ P(B|ZS)=P(BZ|S)/P(Z|S) \\ =P(Z|BS)P(B|S)/(P(Z|AS)P(A|S)+P(Z|BS)P(B|S)+P(Z|CS)P(C|S)) \]

因为车子所在及参赛人选择都是完全随机的,条件概率\(P(A|S)=P(B|S)=P(C|S)=1/3\); 主持人必须在1号门之外打开一扇有羊的门,意味着条件概率\(P(Z|BS)=1,P(Z|CS)=0\); 这时候我们有:

\(P(B|ZS)=1/(P(Z|AS)+1)\),这里\(P(Z|AS)\)是参赛人选择1号门车子也在1号门时,主持人打开3号门的概率。

  • 在这种情况2和3号门后都是山羊,主持人任何选择都符合题意,他如果完全随机在它们间选择,\(P(Z|AS)=1/2\),2号门有车的概率是2/3,同于vos Savant的答案;
  • 如果这时他总是选3号,\(P(Z|AS)=1\),则2号门概率为1/2,相同于大众的答案;
  • 如果这情况不选3号,\(P(Z|AS)=0\),则概率为1,这是因为主持人只有车子在2号门才不得不打开3号门的情况。

这是Morgan等四位美国数学和统计系的教授在《American Statistician》1991年论文【7】中基本逻辑的简述。用贝叶斯推断来考察这个具体例子,说明了即使是vos Savant的标准问题,大家的答案也都有道理,到底是哪一个答案对,取决于主持人选择时的一念之间。这是学术界形式逻辑派的绝地反攻,对Vos Savant的逆袭!

那么实验统计和Vos Savant的样本空间证明【说法3】又错在哪里?

【参考资料】

主观和客观

上篇考察vos Savant标准问题中举例说的具体的场景【1】【2】

在三扇分别藏有一辆车两只羊门的猜测中,参赛人选了1号门,主持人打开3号门里面是羊,问:改选2号是不是有更大机会选到车?【场景1】

用贝叶斯公式计算出这个场景下的条件概率

P(车在2号门 | 选1号门,打开3号门)= 1/(P(打开3号门 | 选1号门,车在1号门)+ 1)

发现这时2号门有车的概率是在1/2到1之间,依主持人的心念而定。【2】【3】当然主持人是仍然要遵照vos Savant标准问题的规定,即主持人必须在参赛人选择的门之外,打开一扇有羊的门,然后让参赛人做第二次选择。

那么已经折服了大众的实验统计及vos Savant的样本空间证明【说法3】,和这贝叶斯公式的计算相异,到底哪个对?

让我们细考一下这个vos Savant的样本空间证明

  1号门 2号门 3号门 不换的结果 换的结果
赛局1
赛局2
赛局3

这个样本空间是针对vos Savant标准问题的总体而言,即不加区分主持人打开是哪个门,只要必须打开有羊的门的情况。Vos Savant从中计算出她2/3概率的结论。实验不外乎按照这个理解,将这些样本随机产生出来,再加以统计。这相当于主持人在还没确定打开哪个门之前问这问题,这打开的门可能是3号,也可能是2号。这时你可以算出主持人没有打开的另一扇门的概率是2/3。而上述的条件概率计算则是说:当主持人打开了3号门,让你看到了并不意外的事实后,你就不能确定另一扇门的概率了!

让我们验证一下这个情况。这个具体的例子【场景1】中主持人打开有羊的3号门,这只能包含赛局1和2这两种样本。按照规定,主持人在赛局2他是没有选择地打开有羊的3号门;在赛局1时,他可以按照自己的心中的任何规则来选择2或3号门,而不违反规定。如果主持人自己的规则是,总打开3号门,那赛局1和2样本有均等机会出现在3号门被打开的场景中,其2号门有车的概率是1/2;反之,如果这时他的规则是,总是打开2号门,而这里打开的却是3号门,那赛局1就不可能出现在这场景中,只有赛局2才有可能,其2号门有车的概率是1;如果这时他是平均在2和3号门中选,赛局1样本在3号门被打开时出现的概率是赛局2的一半,这时2号门有车的概率是2/3。主持人在赛局1的情况,按不同的频率的规则打开3号门,2号门有车的概率从1/2到1之间都有可能。这验证了按贝叶斯公式导出的条件概率的公式。

人人以为实验的结果是最客观的,其实实验的数据该怎么统计,却是决定它的结果。如果我们用统计实验来验证这个具体的场景,统计只能计算符合这场景的样本,而不是全部的数据,这时候实验中主持人开门的不同规则,就显示出不同的结果。

在这个之前,样本空间的证明和实验的统计是不加区分地对所有可能的场景而言,主持人在赛局1不同的开门偏好造成了每个场景中另一个门有车的不同概率,但是所有场景的总体,或者说对于所有场景计算出来的另一个门有车概率的平均值却是2/3,如同vos Savant的直观证明、样本空间的证明和实验的统计出来的结论一样。所以vos Savant对于不只是针对3号门被打开的具体场景,而是一般的情况,并不是没有道理的。

至此,我们似乎可以得出结论:vos Savant的2/3概率结论适合于不加区分主持人打开哪扇门的总体情况。在主持人打开门后,在这个具体的场景中,另一扇门的概率是1/2到1之间的一个数,依主持人的开门规则而定。在1991年后的近二十年中,Wiki和大部分介绍文章都认同这个结论。这也是对简单地认为vos Savant的2/3概率是正确答案的否定。

面对着一个具体的场景,同样是主持人打开一扇有羊的门,仅仅是主持人的动机不同,同样的事件造成另一扇门有车的概率不同。也就是说主持人只是自己心里想的,将来的事还没做,这就影响到了另一扇现在的概率。原来有比较确定概率的总体,被事实揭露后进入一个场景反而更不能确定它的概率。这让很多人感到困惑和哲学上的深思。人们很快会联想到量子的不确定,坍缩和量子纠缠等等。

这似乎很玄妙。到底这个概率是多少,我们可以通过事后观察统计来得到。这个概率叫「客观概率(频率概率)」由频率方法来定义。我们在事后的观察统计中,已经包含了主持人在他的规则下的具体行动的后果。

读者和参赛人事先能够推算出这个概率吗?能,只要我们知道这个观察统计实验中所有的选择规则。这样推算出来的概率叫「主观概率(贝叶斯概率)」由推算者掌握的信息来计算。如果我们知道主持人是按照什么规则来开门,那么得出的就是上述贝叶斯公式计算出来的条件概率。它一定符合用相同规则实验统计出来的客观概率。如果不知道这个潜规则,那么对于主持人打开3号没有羊门的事件就无法用来修正先验的信息。

从这个观点来回顾蒙提霍尔问题的争论就豁然开朗,问题中概率用贝叶斯公式来推算。最初,只知道车子的放置和参赛人的选择都是完全随机的,这确定各个门有车的先验概率是1/3。当我们知道主持人打开一扇有羊的门时,这个排除一扇门和一只羊的信息,将这先验概率修正为1/2。这就是大众的推测。当我们知道主持人必须打开一扇有羊的门时,这更丰富的信息,保持了1号门后验的概率不变,仍然关着那扇门后验概率则变为2/3。如果我们知道具体主持人打开了哪扇门并知道他的开门规则,我们就能算出仍然关着那扇门的后验概率。所有这些推算都是主观概率,具体数值依所知多少开门规则的知识而定。各方所推测的概率数值,依照他们所理解的开门信息,得出的结果都是对的。争论在于不了解对方所根据的信息,缺乏对概率概念的深刻理解,把自己的主观概率当作客观概率。实际上,不是基于实验的数据,能够被推理论推算的概率,都是主观概率,这个问题问的也是主观概率。所不同的是你能在这故事中挖掘出来多少有用的信息得出最准确的后验概率。

在这个具体的【场景1】中,如果不知道主持人在赛局1的开门规则,我们能够得出与客观概率相同的主观概率吗?不能。我们还是只能推算出2/3的结果,这已经是最大限度地利用已知的信息。这这个观点来看,Morgan等四位教授论文【3】中反对vos Savant的结论是错的。这个错误一直等到20年后才被人指出【4】。

如果我们就像在实际的蒙提霍尔游戏节目中面对着这样的场景:初选1号门,主持人打开有羊的3号门,并不知道他按照什么规则来选择的,甚至不知道会不会打开有车的门,这时问:是不是换2号门更有利?我们能够用概率来确定改换的好处吗?不能。用贝叶斯公式不难推算出,这时2号门有车的概率从0到1任何一种皆有可能。最后的结果不是由概率计算就能确定的,它是由主持人和参赛者各自的决策所共同决定的。这不是一个概率的问题,是博弈的问题【4】。我们应该用博弈的模型来解决。

许多人应用数学解决实际问题时,发现事实与计算的不一样,就把它归结为数学的局限,其实更应该检查的是:自己有没有用对了数学的模型。

如果你在读这三篇连载时,你的结果与这最后的答案是相同或者相异,这都不重要。重要的是,这辩驳的理由和推理有没有在你心中想过,这决定了你对概率的理解有没有新的收获。

同一个故事,同一个问题,可以从不同方面来解读,也就有不同的体会。有人觉得无聊,有人急于知道答案,有的从争执方的动机来猜测对错。但如果想有最大的收获,读这个故事时,就要把其中人物的动机和胜负得失,以及自己答案的对错撇开,集中于概率问题的思考。真实世界上的人行事都有其动机,不管动机是否纯洁,只要他们的解答是符合逻辑的,就值得思考,客观地思考是一个学习的过程。数学的对错无关动机,只凭逻辑。这个问题和各方的答案,能有这么多人长时间地在学术刊物上争论,就说明不是个很简单的问题。如果把它看简单了,那就说明自己的思考还不全面,也没有深入到细节,还不能够清晰地分辨各种理由逻辑中的误区。如果你跟了故事里不同观点来思考,那便是一个很好学习概率概念的过程。

【参考资料】

代码模拟

老师提出用python还原三门问题。并探讨下「选择换门」还是「坚持选择」的概率性。

先用代码实现功能:

#coding:utf-8
import random
 
#构建三扇门
door1 = 1
door2 = 2
door3 = 3
 
#构建门后的车
car = random.randint(1,3)
 
#开挂。。提示车子在哪扇门后面
#print "car is in the door"+str(car)
 
#输入一扇门对应的数字
pick1 = raw_input("please pick one of the doors: ")
pick1 = int(pick1)
 
#按照原版的孟缇霍尔问题,第一次不论你选择对还是错,主持人都会按照套路出牌:「你确定吗?真的不改了吗?你他妈为何这么自信?!」
#if pick1 == car:
#    print "you got the car!"
#不管你第一次选择对错,主持人都会给你打开一扇错误的门,然后让你二选一
#else:
while 1:
    kick1 = random.randint(1,3)
    kick1 = int(kick1)
    if kick1 != car and kick1 != pick1:
        print "now kick a sheep door:door"+str(kick1)+",please try again"
 
        pick2 = raw_input(": ")
        pick2 = int(pick2)
        if pick2 == car:
            print "you got the car finally!"
            break
        else:
            print "you got wrong!"
            break

此后我在这个程序的基础上做了修改,分别自动执行100遍两种选择,并记录结果。太自信 的结果,100次只猜中了29次,猜错71次。

有些时候主持人还是靠谱的,如果听主持人的,中奖率66%。

过后的几天我把这个问题分享给公司同事,在没经过用心思考的情况下(其实没差, 我相信他们用不用心都答不对的- -),他们几乎都觉得两种结果应该都是50%的猜中概率 ,只有数值策划,他想了一会说概率应该不一样。而且和我讲什么几率论(够了我根本 听不懂。。

后来我用自己的理解,解释了一下为什么概率是1/3和2/3。不一定对,但是我觉得很容易 理解:

A,B,C三个门,第一次任意选,选中的概率是1/3,这一步是毋庸置疑的。

A B C
1/3 1/3 1/3

如果我们选择A,中奖概率是1/3

假如我们把B和C看做一个整体‘BC’,那么‘BC’的中奖概率是2/3,主持人剔除一个错误的 答案,前提是他不会剔除你选择的那个门,其实就是帮我们把B和C变成了一个整体,这样 ,A的概率还是1/3,转而选择‘BC’,则概率为2/3。