貝葉斯估計淺談
什麼事都要從頭說起,貝葉斯全名為托馬斯·貝葉斯(Thomas Bayes,1701-1761),是一位與牛頓同時代的牧師,是一位業餘數學家,平時就思考些有關上帝的事情,當然,統計學家都認為概率這個東西就是上帝在擲骰子。當時貝葉斯發現了古典統計學當中的一些缺點,從而提出了自己的“貝葉斯統計學”,但貝葉斯統計當中由於引入了一個主觀因素(先驗概率,下文會介紹),一點都不被當時的人認可。直到20世紀中期,也就是快200年後了,統計學家在古典統計學中遇到了瓶頸,伴隨著計算機技術的發展,當統計學家使用貝葉斯統計理論時發現能解決很多之前不能解決的問題,從而貝葉斯統計學一下子火了起來,兩個統計學派從此爭論不休。
什麼是概率?
什麼是概率這個問題似乎人人都覺得自己知道,卻有很難說明白。比如說我問你 擲一枚硬幣為正面的概率為多少?,大部分人第一反應就是50%的機率為正。不好意思,首先這個答案就不正確,只有當材質均勻時硬幣為正面的機率才是50%(所以不要覺得打麻將的時候那個骰子每面的機率是相等的,萬一被做了手腳呢)。好,那現在假設硬幣的材質是均勻的,那麼為什麼正面的機率就是50%呢?有人會說是因為我擲了1000次硬幣,大概有492次是正面,508次是反面,所以近似認為是50%,說得很好(擲了1000次我也是服你)。擲硬幣的例子說明了古典統計學的思想,就是概率是基於大量實驗的。那麼現在再問你,有些事件,例如:明天下雨的概率是30%;A地會發生地震的概率是
舉個例子:生病的機率
一種癌症,得了這個癌症的人被檢測出為陽性的機率為90%,未得這種癌症的人被檢測出陰性的機率為90%,而人群中得這種癌症的機率為1%,一個人被檢測出陽性,問這個人得癌症的機率為多少?猛地一看,被檢查出陽性,而且得癌症的話陽性的概率是90%,那想必這個人應該是難以倖免了
我們用 事件A表示 “測出為陽性”, 用事件B_1表示“得癌症”, B_2表示“未得癌症”。根據題目,我們知道如下資訊:
P(A|B_1) = 0.9, P(A|B_2) = 0.1, P(B_1) = 0.01, P(B_2) = 0.99
那麼我們現在想得到的是已知為陽性的情況下,得癌症的機率 P(B_1|A):
P(B_1,A) = 0.01*0.9 = 0.009
這裡 P(B_1,A)是聯合概率,表示得癌症且檢測出陽性的概率,是0.009。同理可得未得癌症且檢測出陽性的概率:
P(B_2,A) = = 0.99 *0.1 = 0.099
這個概率是什麼意思呢?其實是指如果人群中有1000個人,檢測出陽性並且得癌症的人有9個,檢測出陽性但未得癌症的人有99個。可以看出,檢測出陽性並不可怕,不得癌症的是絕大多數的,這跟我們一開始的直覺判斷是不同的!可直到現在,我們並沒有得到所謂的“在檢測出陽性的前提下得癌症的概率 ”,怎麼得到呢?很簡單,就是看被測出為陽性的這108(9+99)人裡,9人和99人分別佔的比例就是我們要的,也就是說我們只需要新增一個歸一化因子(normalization)就可以了。所以陽性得癌症的概率P(B_1|A)為:0.009}/0.099 + 0.009approx 0.083, 陽性未得癌症的概率P(B_2|A)為:{0.099}/{0.099 + 0.009} approx 0.917 。 這裡 P(B_1|A), P(B_2|A)中間多了這一豎線|成為了條件概率,而這個概率就是貝葉斯統計中的後驗概率!而人群中患癌症與否的概率 P(B_1), P(B_2)就是先驗概率!我們知道了先驗概率,根據觀測值(observation),也可稱為test evidence:是否為陽性,來判斷得癌症的後驗概率,這就是基本的貝葉斯思想,我們現在就能得出本題的後驗概率的公式為:
P(B_1|A) = P(A|B_1)*P(B_1) /(P(A|B_1)*P(B_1) +P(A|B_{2})*P(B_2))
由此就能得到如下的貝葉斯公式的一般形式。
理解貝葉斯公式
這個公式應該在概率論書中就有提到,反正當時我也只是死記硬背住,然後遇到題目就套用。甚至在Chalmers學了一門統計推斷的課講了貝葉斯,大部分時間我還是在套用公式,直到後來結合了一些專門講解貝葉斯的課程和資料才有了一些真正的理解。要想理解這個公式,首先要知道這個豎線|的兩側一會是 ,一會到底指的是什麼,或者說似然函式和引數概率分佈到底指的是什麼。
似然函式(上一章有詳細闡述)
後驗分佈(Posterior distribution)
現在到了貝葉斯的時間了。以前我們想知道一個引數,要通過大量的觀測值才能得出,而且是隻能得出一個引數值。而現在運用了貝葉斯統計思想,這個後驗概率分佈 pi(|x)其實是一系列引數值的概率分佈,再說簡單點就是我們得到了許多個引數及其對應的可能性,我們只需要從中選取我們想要的值就可以了:有時我們想要概率最大的那個引數,那這就是後驗眾數估計(posterior mode estimator);有時我們想知道引數分佈的中位數,那這就是後驗中位數估計(posterior median estimator);有時我們想知道的是這個引數分佈的均值,那就是後驗期望估計。這三種估計沒有誰好誰壞,只是提供了三種方法得出引數,看需要來選擇。現在這樣看來得到的引數是不是更具有說服力?
置信區間和可信區間
在這裡我想提一下 置信區間(confidence interval, CI) 和可信區間(credibility interval,CI),我覺得這是剛學貝葉斯時候非常容易弄混的概念。
再舉個例子:一個班級男生的身高可能服從某種正態分佈,然後我們把全班男生的身高給記錄下來,用高中就學過的求均值和方差的公式就可以算出來這兩個引數,要知道我們真正想知道的是兩這個引數,當然樣本越多,得出的結果就接近真實值(其實並沒有人知道什麼是真實值,可能只有上帝知道)。等我們算出了均值和方差,我們這時候一般會構建一個95%或者90%的置信區間,這個置信區間是對於樣本X來說的,我只算出了一個和 一個引數值的情況下,95%的置信區間意味著在這個區間裡的樣本是可以相信是服從以 , 為引數的正態分佈的,一定要記住置信區間的概念中是指 一個引數值的情況下!
而我們也會對我們得到的後驗概率分佈構造一個90%或95%的區間,稱之為可信區間。這個可信區間是對於引數來說的,我們的到了很多的引數值,取其中概率更大一些的90%或95%,便成了可信區間。
先驗分佈(Prior distribution)
說完了後驗分佈,現在就來說說先驗分佈。先驗分佈就是你在取得實驗觀測值以前對一個引數概率分佈的 主觀判斷,這也就是為什麼貝葉斯統計學一直不被認可的原因,統計學或者數學都是客觀的,怎麼能加入主觀因素呢?但事實證明這樣的效果會非常好!
再拿擲硬幣的例子來看(怎麼老是拿這個舉例,是有多愛錢。。。),在扔之前你會有判斷正面的概率是50%,這就是所謂的先驗概率,但如果是在打賭,為了讓自己的描述準確點,我們可能會說正面的概率為0.5的可能性最大,0.45的機率小點,0.4的機率再小點,0.1的機率幾乎沒有等等,這就形成了一個先驗概率分佈。
那麼現在又有新的問題了,如果我告訴你這個硬幣的材質是不均勻的,那正面的可能性是多少呢?這就讓人犯糊塗了,我們想有主觀判斷也無從下手,於是我們就想說那就先認為0~1之間每一種的可能性都是相同的吧,也就是設定成0~1之間的均勻分佈Uni(0,1)作為先驗分佈吧,這就是貝葉斯統計學當中的無資訊先驗!那麼下面我們就通過不斷擲硬幣來看看,這個概率到是多少,貝葉斯過程如下:
從圖中我們可以看出,0次試驗的時候就是我們的先驗假設——均勻分佈,然後擲了第一次是正面,於是概率分佈傾向於1,第二次又是正,概率是1的可能性更大了,但注意:這時候在0.5的概率還是有的,只不過概率很小,在0.2的概率變得更小。第三次是反面,於是概率分佈被修正了一下,從為1的概率最大變成了2/3左右最大(3次試驗,2次正1次反當然概率是2/3的概率最大)。再下面就是進行更多次的試驗,後驗概率不斷根據觀測值在改變,當次數很大的時候,結果趨向於0.5(哈哈,結果這還是一枚普通的硬幣,不過這個事件告訴我們,直覺是不可靠的,一定親自實驗才行~)。有的人會說,這還不是在大量資料下得到了正面概率為0.5嘛,有什麼好稀奇的?注意了!畫重點了!(敲黑板) 記住,不要和一個統計學家或者數學家打賭!跑題了,跑題了。。。說回來,我們上面就說到了古典概率學的弊端就是如果擲了2次都是正面,那我們就會認為正面的概率是1,而在貝葉斯統計學中,如果我們擲了2次都是正面,只能說明正面是1的可能性最大,但還是有可能為0.5, 0.6, 0.7等等的,這就是對古典統計學的一種完善和補充,於是我們也就是解釋了,我們所謂的 地震的概率為5%;生病的概率為10%等等這些概率的意義了,這就是貝葉斯統計學的哲學思想。