PS5 - 道觀無貴賤,物觀賤貴生: 條件機率與貝氏定理
Concert of Putti in the Clouds (unknown date), Wenceslaus Hollar |
Can several angels be in the same place?
—Summa Theologica
引言來自中世紀神學家聖托馬斯.阿奎納 (St. Thomas Aquinas, 1225-1274) 的神學大全 (Summa Theologica) 第一部問題52,後來成為中世紀經院哲學 (scholasticism) 在探討歸謬法 (reductio ad absurdum) 中的經典問題:有多少天使在針頭上跳舞?(How many angels can dance on the head of a pin?) 不過討論這種問題如同爭論白馬非馬邪,後來也被隱射為不切實際、空想哲學家的成語!撇開這些泛泛迂腐的哲學論證,在問到底有多少天使在針頭上跳舞時我們牽涉到了一個關於信念的議題,我有多相信天使佔有物理實體?如果天使沒有實體,那麼任何地方都可以容納無限多的天使,如果天使有一定的體積,那麼不管在大的空間,可以容納的天使數量都是有限的。基於我們先驗的 (prior) 信念配上觀測的數據而導出後驗的 (posterior) 推論,這就是貝氏分析 (Bayesian analysis) 的基本想法。之後將會深入探討我們人在無時無刻所做的決定,都是根據貝氏分析的方式來下決策,不過在這之前,讓我們先回到最基本的機率開始!
一、立春落雨透清明,條件機率
雨都基隆平均一年有200天將近3/5都在下雨,隨機從一年中抽出10天,大概有5至6天會是雨天,這是運用了平均的概念。不過我們換個情境,如果今天我抽出某一天告訴你那天是雨天,試問隔天下雨和出太陽的機率誰高?這個時候我們會發現平均率失準了,因為跟在雨天的隔天也是下雨天的機率總是特別高,大概抽出10天雨天,隔天也是雨天的數量會接近8天,也就是超過4/5而不是以一年平均的3/5。
圖1. 共同處在菱形A與圓形B中的事件稱作A交集B (A∩B),若是包含所有A與B的事件集合便稱做A聯集B (A∪B),這樣的圖形此稱作文氏圖 (Venn diagram) |
所以上面的情境中是基於第一天是雨天的條件 (condition),求出隔天也是雨天的機率,就稱作條件機率 (conditional probability)。我們可以用圖1這類的文氏圖 (Venn diagram) 來表示,若A表示所有雨天的事件,而B則表示隨機抽出某一天的隔天是雨天的事件 (抽出的那一天不一定是雨天而可以是晴天,例如我隨機選了Mar. 5這天,B則表示Mar. 6是下雨的;另外如果我隨機選定Apr. 8,那Apr. 9是晴天的話則不算在B裡面。至於隨機抽到的Mar. 5和Apr. 8是晴是雨則對B而言無關緊要,B只關注隔一天是雨天的事件)。所以我們可以用這樣來描述:給定 (given) 第一天是雨天 (條件),求第二天也是雨天的機率?其數學表達式則為\[P(第二天雨天|第一天雨天)=\frac{P(第一天雨天\cap 第二天雨天)}{P(第一天雨天)}\]其中左式的直槓“|”表示給定。我們用比較抽象簡練的寫法則是\[P(B|A)=\frac{P(A\cap B)}{P(A)}.\tag{5.1}\]左式\(P(B|A)\)的意思是求給定A為條件 (A必發生),同時B也發生的機率,換句話說就是A和B共同發生的事件占了A事件多少的比例 (fraction)。
碗1
|
碗2
|
|
巧克力
|
50
|
10
|
香草
|
50
|
90
|
來看另一個例子,今天有兩種口味的oreo餅乾,巧克力與香草,用兩個碗盛裝,每個碗裡面裝的餅乾與口味如表1所示。傳統上來看,不分碗1碗2,我抽中巧克力的機率是\(60/200\approx 30\%\),大概可以說隨機摸10次有差不多3次會摸到巧克力口味的oreo。但現在我們想知道如果抽出一個巧克力口味的oreo,那它是從碗1抽出來的機率是多少?
分析一下:給定口味是巧克力的oreo,想求是從碗1摸出來的機率。模仿Eq. (5.1)我們可以寫下\[P(碗1|巧克力{\rm oreo})=\frac{P(碗1\cap 巧克力{\rm oreo} )}{P(巧克力{\rm oreo})}.\]分子\(P(碗1\cap 巧克力{\rm oreo})\)表示選到碗1且從裡面摸出巧克力oreo的機率。由於選到碗1與接下來從裡面摸出什麼口味的oreo無關,兩件事情是獨立事件,故\[P(碗1\cap 巧克力{\rm oreo} )=P(碗1)\times P(巧克力{\rm oreo})=\frac{1}{2}\times \frac{50}{100}=\frac{1}{4},\]而分母\(P(巧克力{\rm oreo})\)表示巧克力口味占所有餅乾的份量,即\(60/200\)。所以答案是\[P(碗1|巧克力{\rm oreo})=\frac{1/4}{60/200}=\frac{5}{6}\approx 83\%.\]我們對這個條件機率的解讀是:當我摸出了10個巧克力oreo餅乾,裡面約有8個會是從碗1來的。這裡多補充一些,因為巧克力口味不多,我可能得要摸遠大於10次才有辦法收集到10個巧克力oreo。從平均的觀點來看,因為巧克力口味只佔了三成,代表我可能要摸至少30次才有辦法收集到其中10個是巧克力的oreo,而剩下的20個則是香草風味,整體符合平均率。不過條件機率因為就是有條件嘛,我們只把眼光狹隘地集中在這10個巧克力風味的oreo身上,這10個oreo在我們狹隘的眼光裡變成了整個樣本空間 (\(P(E)=1\)),至於那些香草口味的oreo就全部掃進垃圾桶裡啦,他們在這裡是無關緊要的存在!另外它與\(P(碗2\cap 巧克力{\rm oreo} )\)是互補事件 (complementary event),即\[P(碗2\cap 巧克力{\rm oreo} )=P(\overline{碗1\cap 巧克力{\rm oreo}})=1-P(碗1\cap 巧克力{\rm oreo})=\frac{1}{6}.\]這也是合理的,在現有的假設下,那10個被摸出來巧克力oreo一定不是從碗1就是碗2來的,除非有來自東方閃電5倍oreo的貢獻!
最後做個練習,試問已知摸到了香草,它從碗2出來的機率是:\[P(碗2|香草{\rm oreo})=\frac{P(碗2\cap 香草{\rm oreo} )}{P(香草{\rm oreo})}=\frac{\frac{1}{2}\times\frac{9}{10}}{140/200}=\frac{9}{14}\approx 64\%,\]所以馬上就可以得到\(P(碗1|香草{\rm oreo})=1-P(碗2|香草{\rm oreo})=5/14\approx 37\%\)。
好了,我們已經有了基於附帶條件而求出機率的概念了,可是真實的世界不可能像摸oreo餅乾這麼簡單。要得出這樣的條件以前,我們還得確定把餅乾放在碗裡的人真的很有誠信全部放的都是oreo而不是混著borio (一個oreo的山寨),給你士力架而不是士加力,這就牽涉到信念的問題,我們多相信這是真的,在計算中放入了先驗的影響,就是接下來貝氏分析要探討的問題!
二、風動?幡動?心動?貝氏推論
關於這個概念以及應用有很多的名詞,但不外乎都前綴貝氏兩個字,什麼貝氏定理、貝氏分析或貝氏推論等等。不過我們不需要計較這麼多,歷史上這個概念源自於十八世紀英國長老會牧師湯瑪士.貝葉斯 (Thomas Bayes, 1702-1761),最初的想法是如何利用已知的觀測數據或證據來修改原先的觀點或推論。而貝氏推論的方法其實遠遠早於Gauss、Laplace等數學家後來發展的古典機率論 (classical probablistic theory),所以貝氏的機率論才應當稱之為古典機率論,不過貝氏分析的計算繁複,特別是拿來推論機率分佈函數pdf的時候,遠不是當年人工手算可以輕易達成的,所以之後的數學家轉而將心力投入在頻率論上面。雖然歷史弄人,但我們就將錯就錯吧!古典機率論又稱做頻率論,就像上一節提到的用某事件出現的次數與全部事件的比來推斷該事件出現的頻率,或往後可能發生的次數。而貝氏推論則採取不一樣的道路,我先假設某事件的出現是受制於某種機制 (即模型),那麼從接下來的觀測資料中,我可以去推斷我的模型對於事件發生的預測有多好,所以我可以給出與機制相關的參數一個信賴區間。
換個比較直白的觀點來解釋,如果我們有某個國家的收入平均\(\mu\)與資料標準差\(\sigma\),但其實該國收入的分佈我們並不清楚,古典機率論允許我們可以做最簡單的假設該國收入是一個\(\mathcal{N}(\mu,\sigma)\)的常態分佈 (零假設\(H_0\)),但是今天有其他人提出了收入分佈可能是另一個叫做\(S(q_{50},\sigma,\gamma_1)\)的\(S\)分佈,而它跟收入中位數\(q_{50}\)、資料標準差和資料偏度 (skewness) \(\gamma_1\)有關 (對立假設\(H_1\))。我們便可以進行如卡方檢定 (\(\chi^2\)-test) 或ANOVA來驗證哪個分佈較吻合真實的數據,較不吻合的那個假設則會被剔除!所以在古典的機率論裡面,我們可以簡單地說總是有一方會敗仗下來而被從歷史上抹去😭!
但貝氏推論則不一樣了,在貝氏分析裡,並沒有所謂會敗陣下來的一方,它並不會告訴你孰優孰劣,相反地,像前面的常態分佈\(\mathcal{N}\)或是\(S\)分佈在貝氏分析裡統稱為先驗分佈 (prior distribution) 或先驗函數等等。先驗表示我們的初始信念,假定薪資分佈就是\(\mathcal{N}\)或就是\(S\),接著引入資料集,通過數學操作後,我們會得出一個全新的分佈,稱作後驗分佈 (posterior distribution) 或後驗函數。為了方便我們接下來稱先驗為prior而posterior代指後驗。經操作得出的posterior其實已經不再是原來的prior了,而是揉合了prior與觀測資料集得出來的全新分佈函數,這點是與傳統的機率論很不一樣的地方!傳統的機率論原來放什麼分佈它就是什麼分佈,只差在與資料集吻合度高與吻合度低而已。而貝氏分析得出 (就是推論) 的posterior與原來的prior沒有強關聯,即便一開始放進去的prior可能是錯的,只要資料集中的資料點愈來愈多,最終貝氏分析還是可以推論出一個與真實資料相仿的posterior,而這個posterior的參數就是一開始prior中的參數,如果prior是\(\mathcal{N}\)那麼參數就只有\((\mu,\sigma)\),是\(S\)的話就是\((q_{50},\sigma,\gamma_1)\)。這就是貝氏分析神奇的地方,不管你一開始餵給它什麼張三李四狐群狗黨的假分佈,只要是含著金湯匙出生的資料,雖著資料點愈多,posterior便會愈貼近資料真實的情況!不過這其實也是有所犧牲,雖然posterior貼近真實資料集的情況,但除了一開始輸入的參數是根據prior給定的外,它早已與prior脫鉤了,這使得他得出的posterior在解釋上有一定的困難,甚至會有爭議性!例如前面舉的\(\mathcal{N}\)或放\(S\)作為prior,他們其實輸入的參數是很不一樣的,但為什麼posterior最後會長得差不多,這到底該怎麼解釋與處理是棘手的部分1。我們之後會繼續回到這個問題上來,但現在先讓我們放下這些爭議性,用單純的眼光來欣賞貝氏分析的迷人之處就可以了!
1. 貝氏定理
總括來講,前面一拖拉庫的posterior就是要求條件機率,什麼樣的條件機率呢?就是在給定資料集D (dataset)後,他來自某個分佈H的的機率為何?這就是我們的posterior\[\textrm{Posterior: }P(H|D)=\frac{P(H\cap D)}{P(D)}.\tag{5.2}\]由於\(P(H \cap D)\)無法直接得知,我們通過Eq. (5.1)可以稍微把它改寫成\(P(H\cap D)=P(D|H)P(H)\),所以Eq. (5.2)變成了\[P(H|D)=\frac{P(D|H)P(H)}{P(D)}\tag{5.3}\]這就稱作貝氏定理 (Bayesian theorem),其中:- \(P(H)\)沒有問題就是我們的prior,在我們真的看到或拿到資料集D開始計算以前,它是們覺得任何可能是描述D的分佈。prior也可以從上一次的posterior來,亦即他是一個不斷迭代的結果,每一次的posterior都可以作為下一次的prior,這樣做的原因有可能是因為D更新了,所以我需要得到新的D所對應的posterior
- \(P(D|H)\)稱作似然度 (likelihood),亦即給定了一個prior後,他有多大的機率可以產生資料集D內的點,如果是百分之百命中的H那似然度便是100%
- \(P(D)\)稱作標準化常量,可以把它想成能夠產生D的H的所有可能
1 這裡提到的是如何從使用maximum likelihood的方法去推導出模型參數最有可能的值,不過這是之後的文章在細談了,我們這邊只著重在比較簡單的生活例子上
2. 天象難測
假設某城市下雨的狀況如下:若第1天下雨的話,第2天下雨的機率增為60%;但若第1天是晴天,第2天下雨的機率只有10%;另外該市的平均降雨機率是\(P(下雨)=0.15\)。所以我們現在有幾種條件:- Prior: \(P(下雨)=0.15\),所以\(P(晴天)=P(\overline{下雨})=1-P(下雨)=0.85\)
- \(P(第2天雨|第1天晴)=0.1\)
- \(P(第2天雨|第1天雨)=0.6\)
假設我隨機從這個城市中任挑一天且那天下雨,那麼前一天 (即第1天) 的降雨機率可表示為\[P(第1天雨|第2天雨)=\frac{P(第2天雨|第1天雨)P(第1天雨)}{P(第2天雨)}.\]分子中的\(P(第1天雨)\)代表任挑一天是下雨的機率,即我們的prior。而分母中的\(P(第2天雨)\)就比較tricky一天啦,因為雖然第2天是下雨的,但它的前一天可以是晴亦或雨,所以\[P(第2天雨)=P(第2天雨|第1天晴)P(晴天)+P(第2天雨|第1天雨)P(雨天)=0.175.\]最後我們想要的結果即是\[P(第1天雨|第2天雨)=\frac{0.6\times 0.15}{0.175}\approx 51\%.\]這個結果表示我們隨便抽到其中一天如果是雨天,那麼有51%的機率它的上一天也是雨天!
觀點:好!我知道得水痘的病人有80%會出現斑痘,而天花則是90%,所以我可以寫下:
分析:貝氏定理告訴我們\[p(天花|斑痘)=\frac{p(斑痘|天花)p(天花)}{p(斑痘)},\]所以我們還得找出一個權衡\(p(斑痘|天花)\)的prior叫做\(p(天花)\),他大意可表為得天花的人佔總人口數的多少,或者解釋為多少人裡有一人染上天花的機率。這個prior基本上是非常主觀的,我們沒有辦法知道它真正的量,但可以這樣估計,因為天花已經絕跡,如果真的要得比較大的機會是恐怖攻擊,但要如何從CDC或俄羅斯政府這種戒備森嚴的地方盜出天花病毒株再加以擴散,想起來機率變小了很多,所以我們粗估一個很小的prior如\(p(天花)=10^{-4}\),即目前來看真的散佈出去,平均每1萬人才有一人會中。
而分母\(p(斑痘)\)比較funny一點,它表示所有人口當中身上因疾產生斑痘的比率 (青春痘也算,基本上是100%了)。這實在是一個無法得知的數字,但唯一知道它的功用是作為歸一化常量 (normalization constant),又因為\(p(水痘|斑痘)\)擁有一樣的分母,我們也只是想知道兩者誰大誰小而已,所以這個分母的確切值可以不需要知道。
另外就是平均有5成的青少年人口會染上水痘病毒,雖然good doctor不清楚有多少青少年人口,但假定占了總人口的1/10,一半便是\(p(水痘)=0.05\),我馬上便可以得到\[\frac{p(天花|斑痘)}{p(水痘|斑痘)}=\frac{p(斑痘|天花)p(天花)}{p(斑痘|水痘)p(水痘)}=\frac{9\times 10^{-5}}{4\times 10^{-2}}=0.00225,\]看起來病人得水痘的機率遠遠大於得天花的機率。
從這些例子來看,相較於古典機率用頻率的方式來估計事件發生的機率,貝氏機率更像是一種對不確定性的度量。尤其從第二個疾病診斷的例子來看,所謂的prior基本上是未知的,我們取這個值的大小是依據我們過往的經驗與資訊\(I\)而不是它真的就這麼的小。所以prior會受到個人的主觀的偏見所影響。另外貝氏定理的posterior也往往可以當成下一次遇見相同情況的prior,這是一個迭代的過程,每一次的迭代都會更新posterior而導致我的的信念更加趨向某一方。
重看天花的例子,假設一周內來了10位有斑痘的病人且3位確診為天花,這下真的不得了了,一週內出現密集的天花患者,所以\(p(天花|斑痘)\)暴增為0.3 (這時候不再是假設很稀有的天花患病率\(10^{-4}\),good doctor依據觀測資料不斷更新posterior) 且\(p(水痘|斑痘)=0.7\)。而當我下次再看到斑痘的病人時,我以上次的觀測的結果當作這次的prior得出\[\frac{p(天花|斑痘)}{p(水痘|斑痘)}=\frac{p(斑痘|天花)\overbrace{p(天花|斑痘)}^{\rm prior}}{p(斑痘|水痘)\underbrace{p(水痘|斑痘)}_{\rm prior}}=\frac{0.9\times 0.3}{0.8\times 0.7}\approx0.48,\]基本上good doctor斷定患者有很高的機率是得到了天花 (花括弧的上下標prior它們原本是看到這個病人前按照之前資料更新出來的posterior)!所以我們等同是隨著觀測資料的變動而不段的更新我們的posterior,這種理解貝氏推論的方式也稱作歷時詮釋 (diachronic interpretation)。
3. 診斷疾病 (改自ref. 6)
情境:一位青少年病人全身覆滿了斑痘來到診所,這樣的症狀非常像水痘病毒所引起的,但也有可能是另一種更致命的病毒 -天花,雖然天花已絕跡 (僅存美國CDC與俄羅斯政府實驗室還保有病毒株樣本),但難保不會是生化恐攻,那麼身為good doctor你該怎麼從病人的症狀來判斷哪種疾病比較有可能呢?(即看\(p(水痘|斑痘)\)和\(p(天花|斑痘)\)誰比較大)觀點:好!我知道得水痘的病人有80%會出現斑痘,而天花則是90%,所以我可以寫下:
- \(p(斑痘|水痘)=0.8\)
- \(p(斑痘|天花)=0.9\)
分析:貝氏定理告訴我們\[p(天花|斑痘)=\frac{p(斑痘|天花)p(天花)}{p(斑痘)},\]所以我們還得找出一個權衡\(p(斑痘|天花)\)的prior叫做\(p(天花)\),他大意可表為得天花的人佔總人口數的多少,或者解釋為多少人裡有一人染上天花的機率。這個prior基本上是非常主觀的,我們沒有辦法知道它真正的量,但可以這樣估計,因為天花已經絕跡,如果真的要得比較大的機會是恐怖攻擊,但要如何從CDC或俄羅斯政府這種戒備森嚴的地方盜出天花病毒株再加以擴散,想起來機率變小了很多,所以我們粗估一個很小的prior如\(p(天花)=10^{-4}\),即目前來看真的散佈出去,平均每1萬人才有一人會中。
而分母\(p(斑痘)\)比較funny一點,它表示所有人口當中身上因疾產生斑痘的比率 (青春痘也算,基本上是100%了)。這實在是一個無法得知的數字,但唯一知道它的功用是作為歸一化常量 (normalization constant),又因為\(p(水痘|斑痘)\)擁有一樣的分母,我們也只是想知道兩者誰大誰小而已,所以這個分母的確切值可以不需要知道。
另外就是平均有5成的青少年人口會染上水痘病毒,雖然good doctor不清楚有多少青少年人口,但假定占了總人口的1/10,一半便是\(p(水痘)=0.05\),我馬上便可以得到\[\frac{p(天花|斑痘)}{p(水痘|斑痘)}=\frac{p(斑痘|天花)p(天花)}{p(斑痘|水痘)p(水痘)}=\frac{9\times 10^{-5}}{4\times 10^{-2}}=0.00225,\]看起來病人得水痘的機率遠遠大於得天花的機率。
從這些例子來看,相較於古典機率用頻率的方式來估計事件發生的機率,貝氏機率更像是一種對不確定性的度量。尤其從第二個疾病診斷的例子來看,所謂的prior基本上是未知的,我們取這個值的大小是依據我們過往的經驗與資訊\(I\)而不是它真的就這麼的小。所以prior會受到個人的主觀的偏見所影響。另外貝氏定理的posterior也往往可以當成下一次遇見相同情況的prior,這是一個迭代的過程,每一次的迭代都會更新posterior而導致我的的信念更加趨向某一方。
重看天花的例子,假設一周內來了10位有斑痘的病人且3位確診為天花,這下真的不得了了,一週內出現密集的天花患者,所以\(p(天花|斑痘)\)暴增為0.3 (這時候不再是假設很稀有的天花患病率\(10^{-4}\),good doctor依據觀測資料不斷更新posterior) 且\(p(水痘|斑痘)=0.7\)。而當我下次再看到斑痘的病人時,我以上次的觀測的結果當作這次的prior得出\[\frac{p(天花|斑痘)}{p(水痘|斑痘)}=\frac{p(斑痘|天花)\overbrace{p(天花|斑痘)}^{\rm prior}}{p(斑痘|水痘)\underbrace{p(水痘|斑痘)}_{\rm prior}}=\frac{0.9\times 0.3}{0.8\times 0.7}\approx0.48,\]基本上good doctor斷定患者有很高的機率是得到了天花 (花括弧的上下標prior它們原本是看到這個病人前按照之前資料更新出來的posterior)!所以我們等同是隨著觀測資料的變動而不段的更新我們的posterior,這種理解貝氏推論的方式也稱作歷時詮釋 (diachronic interpretation)。
四、小結
貝氏定理我個人覺得是非常有意思的思考方式,當然它的背後確實有數學邏輯上的支持,不過我們也必須認清,前面談到人的決策是利用貝氏推論的方式在運作,但人與人的關係與感覺基本上是無法量化成數字,況前所謂的prior其實就是個人主觀的看法,當我們的資料集不夠龐大的時候,所推論出的posterior就有很大的機會產生失準,因為假設的prior可能不正確,且沒有足夠的資料去修正這個問題。
網路上雖然有很多文章喜歡拿這類心理印象來討論貝氏分析的“功用”,台灣有泛科學的賴教授,科普有像Nate Silver的精準預測 (三采文化,2013)……等等,但我認為把貝氏分析拿來解釋這類事情稍有誤導與言過其實之嫌,主要在於我們無法量化這類情感的prior與對應的條件機率,我要怎麼知道我在男女朋友的衣服上搜出保險套代表對方有偷吃或出軌?如果不行的話充其量也只能揣測,我揣測對方可能有偷吃,很可能可能可能出軌,但這代表著什麼意思呢?你的可能和我的可能是一樣的嗎?
最終,不否認貝氏定理是非常強大的工具,但不如就讓上帝的歸上帝,凱薩的歸凱薩,與其將貝氏分析使用在這種言之鑿鑿,牽強附會的情境上,我們不如多關照它可以在科學研究上對於數據與模型間吻合度的檢驗帶給我們新的洞見!
留言
張貼留言