PS6 - 公正不公正? 不確定性的度量: 貝氏推論 (上)
![]() |
PASIEKA / SCIENCE PHOTO LIBRARY |
Data analysis is simply a dialogue with the data
—S. F. Gull
一、機率到底告訴我們了什麼?
假定我們有兩枚六面骰A和B每面為標記為1~6的整數,我們如何確定兩枚骰子都是公正的? 即每個面骰出的機率皆為1/6。古典機率的概念告訴我們若擲兩枚骰子多次,並記錄每面出現的次數,如果一枚骰子是公正的,那麼理論上每面出現的次數相同或接近相同。
![]() |
圖1. 骰A (粉藍) 與骰B (粉紅) 各擲50次每面出現的次數 |
現在我擲50次並記錄兩枚骰子每個面出現的次數,並用將其畫成直方圖如圖1所示,從記錄的結果來看,我可以斷定哪個骰子是公正的嗎? 看起來好像不行,那如果我改成擲100次、1000次就可以分別公不公正了嗎? 換個方向來看,也許我們不在乎骰子是否公正,我們在乎的是用我們觀測的資料集D,它是否可以告訴我們骰子每面出現的機率分佈是什麼? 都是同一組資料,一個是基於古典推論 (classical inference),另一個則是貝氏推論 (Bayesian inference)。對於古典推論,即頻率論而言,我們有以下原則 (tenets):
- 機率對應到的是事件出現的頻率,它們是真實世界的客觀呈現 (objective properties)
- 參數是固定的 (未測量前是未知的),比如六面骰每面擲出的機率可以是這裡提到的參數。這裡的參數對應的是柏拉圖世界的量,如果是一枚六面公正骰,那麼每面擲出的機率一定是1/6,不可能有波動 (fluctuation)
- 當我們重複步驟愈多次 (如擲骰的次數),那麼每面出現的頻率應該是一個可以被定義的量 (即收斂,如果該量會產生波動則不收斂)
- 機率是對主觀信念 (subjective beliefs, prior) 的描述,而不受限於資料出現的頻率長遠來看是否是一個定值
- 我們對於模型參數 (例如每個面出現的機率) 的推論給出的是它位於“某個值”的機率分佈,這個分佈代表的是我們對這個參數有多清楚 (不清楚的話該參數就會是一個很大的範圍)
以我們現有的資料,我們只能給出這樣的結果,我沒有辦法100%肯定他一定是公正的,但我可以給出它會偏離公正骰有多遠,一個信心區間 (confidence level, C.L.)。當然透過累積更多的觀測資料,我們可以不斷更新我們的posterior而縮小這個不確定性。所以貝氏推論描述的是基於我們所擁有的知識 (即資料D) 能給出推定的範圍,是知識論 (epistemology) 的上限。
在我們往下以前,先揭露骰A確實是公正骰,但骰B每個面的權重是p={112,16,14,16,14,112},只是骰的次數不夠多次無法直觀地看出這個差異。
二、最大似然估計法
對於參數的估計,我們可以採用最大似然估計法 (maximum likelihood estimation, MLE)1,這個方法在古典推論中被大量的使用。一開始我們先談談什麼是似然函數L (likelihood function)。假設我們有一組資料集D={xi}其中集內的每個樣本xi都是對某個未知分佈M(θ)的取樣,而θ是M的參數。所以當分佈M給定後,它產生每個樣本xi的機率分佈 (pdf) 就是p(xi|M(θ)),或稱作樣本xi的datum likelihood。若有n個樣本,那麼就有n個data likelihood:p(x1|M(θ))、p(x2|M(θ))⋯p(xn|M(θ)),而L就是所有這些p的積 (product),即L≡p({xi}|M(θ))=n∏i=1p(xi|M(θ)),其中一個M可能有很多個參數θ={θ1,θ2,...,θk},若M是Gaussian分布,則稱Eq. (6.1)為Gaussian likelihood。而MLE即找出一組θ讓L有最大值,該組θ就是我們要的參數。它的想法很簡單,每個datum likelihood都表示模型M(θ)產生隨機變數xi的pdf,最有可能的參數θ表示可以讓整組資料D={xi}被M生出來的機率最大,故所有data likelihood的乘積Πni=1p(xi|M)也會是最大,這就是MLE的概念。找出L極值的做法便是其對θ的微分等於0處,由於有k個θ,所以∂L∂θk|θk=θ0=0.由於L是由許多組pdf相乘所構成,為了計算方便可以將其取ln,所有相乘的項就變相加了,計算因而簡單許多,對應的對數似然函數lnL (log-likelihood function)∂lnL∂θk|θk=θ0=0.假定M是高斯分佈的情形,參數θ={μ}。對資料集D={xi},透過Eq. (6.2)可得解析解在μ=μ0=∑niwixi∑niwi有MLE極大值。其中wi=σ−2i=(σ2o+e2i)−1,而σo是樣本分佈的真實標準差、ei是每次量測時的誤差。另外μ0的誤差可以表示成σ=σμ=(n∑i=1wi)−1/2. 另一個問題就是對同一組D而言,我們當然可以假設M是高斯分佈,但當然也可能不是,這時候我們就需要做擬合度檢驗 (goodness of fit)。若是高斯,則我們有Gaussian likelihoodlnL=const.−12n∑i=1z2i=const.−12χ2其中zi=(xi−μ)/σ。所以L可以視為是一個擁有N−k自由度的卡方分佈,其中k是模型參數的數量。對於一個擬合度良好的模型,我們期望χ2dof=1N−kn∑i=1z2i≈1,但若χ2dof−1遠大於√2/(N−k),則不太可能D是來自該高斯分佈。除了卡方檢定外,還有其他檢驗也可以用來測試D是否是來自高斯分佈,例如Anderson-Darlin檢定和Kolmogorov-Smirnov檢定,這裡就不贅述了。
1 注意maximum likelihood estimation和maximum likelihood estimate的縮寫都是MLE,前者指的是估計模型參數的方法,後者指的是所有的data likelihood裡面最大的那個datum likelihood: maxxi∈Dp(xi|M)
三、貝氏推論
接下來會很常舉P&S5中疾病診斷判定是否病人得的是天花的例子,忘記了可以再去翻翻看複習一下。在上一個小節中我們簡述了古典推論透過MLE來給定參數θ的值,另外可以注意到的是古典推論討論的是p(D|M),即給定M下,它產生D={xi}的機率。所以不管怎樣我一定先假定了分佈M了,可是分佈這麼多我能確定一定是這個M嗎? 比如說是高斯分佈,但如果檢驗告訴我他不是高斯,那又是什麼? 並不是每種狀況都可以單純從D中便知道他是什麼分佈,我們更希望的是D是否可以自己說出多有可能它是來自某個分布M!所以我們想知道的便是p(M|D),也許一開始我們並不知道真正的M是什麼,可能肇因於資料不夠多,但隨著愈來愈多的觀測資料被加進D裡,我們同時也不斷地更新p(M|D)。我們可以把這類對貝氏定理的理解稱為歷時詮釋 (diachronic interpretation),也是P&S5診斷天花例子的解釋,為什麼醫生最後判定帶痘斑來的病人是天花的機率變高了。利用貝氏定理,我們可以得到p(M,θ|D)=p(D|M,θ)p(M,θ)p(D)其中每一項的含義為:
- p(M,θ|D)即posterior,是我們想知道跟D有關的分布的機率
- p(D|M,θ)即data likelihood
- p(M,θ)即prior,是在得到或更新觀測資料D前我們對M的主觀假定
- p(D)是一歸一化常量 (normalization constant),又稱標準化常量,是所有任何可能得到D的M的聯合機率分布
1. 如何選擇prior?
由於除了我們要分析的資料外沒有其他關於prior的資訊了,所以初始prior的選擇可以基於一些規則或經驗,例如說“按照模型參數所給出的變異數必須是正定的”,不過變異數本來就是二次方的矩 (moment),不管模型參數多麼稀奇古怪,它必然是正定的;而診斷例子中的p(天花)=10−4,只能說good doctor認為不失一般性下染上天花的機率很小而已,本質上這些prior好像說了什麼,細看又什麼都沒說,這些prior就稱作無信息先驗機率 (uninformative prior)。這裡的無信息表明了這些prior盡可能是客觀不帶有偏見地去影響posterior的結果。舉例像是統派會說:“長遠來看兩岸合久必分分久必合,統一是必然的”,基於這個prior我們可以推論出一個posterior那就是兩岸必然統一,但什麼時候會統一,這個prior的資訊是完全沒有畫面的! (它只是客觀地講出他認為最終的可能,但沒法告訴你是明天、下個月或是明年會統一)2 這裡還是要強調一下,即便是最無信息的prior,它仍是我們計算posterior的一部分 (權重),所以它仍然會造成一定的影響,而貝氏推論最後也不必然等於古典推論的結果,而最大的那個datum likelihood (maximum likelihood estimate) 也不一定影響posterior最多,它可能因為得到比較小的prior而效應變差 (像p(天花|痘斑)雖然是MLE,但p(天花)小很多,最後也壓低了病人得的是天花的後驗機率)。
再來看回六面骰的例子了,prior是每個面被骰出的機率pi的離散集合,所以我們可以導出兩個約束條件 (constraints),第一個是歸一化條件6∑i=1pi=1而第二個是點數的期望值μ6∑i=1ipi=μ.為了找出S在上面這兩個條件成立下的極值,可以直接套用拉格朗日乘子法 (Lagrange's multipliers)Q=S+λ0(1−6∑i=1pi)+λ1(μ−6∑i=1ipi)其中S為Eq. (6.6)。所以極值會發生在∂Q/∂pi=0的地方 (多變數就是找梯度為0的點),對這個六面骰的例子,我們有pi=exp(−1−λ0)exp(iλ1)。雖然有兩個未知數λ0和λ1,但也有兩個約束Eq. (6.7)和Eq. (6.8),就可以得到p(θ)=1μexp(−θμ),而θ就是該面的點數。我們便可以將Eq. (6.9)當作求六面骰每面被骰出的機率的prior。
2 一個例子像是隨便假設flat prior: p(θ)∝C且C>0是一常量,因為在θ空間這個prior是發散的∫∞−∞p(θ)dθ→∞,這種prior也稱作improper prior。不過只要posterior是well-defined,prior是不是improper沒有關係,另外我們也可以設定θ必須處在一個區間,這樣他就不會發散了
給定了D,我們心中有兩種可能描述D的說法,即M1和M2,至於誰是最有可能的說法呢? 則可以透過勝算比 (odds ratio,一說幾率,不是機率) 來估算,定義為Q21=p(M2|D)p(M1|D).通常來說:
1.1 熱力學觀點:夏儂熵 (Shannon's entropy)
為了盡量減少prior對計算posterior產生的bias,我們當然希望prior愈uninformative愈好,我們來看看如何減低prior所帶的資訊。以下參考自ref. 5。假設有一組pdf含n個離散值pi (像六面骰n=6,每一面骰到的機率就是p(face)),歸一化保證了∑ni=1pi=1,我們便可以定義S為該分佈的夏儂熵 (Shannon's entropy)S=−n∑i=1pilnpi.另從L'Hôpital's rule我們有limp→0plnp=0,順便補充當pdf是連續而不是離散的話,Shannon's entropy可以用積分表示S=−∫∞−∞p(x)(p(x)m(x))dx,其中m(x)稱為測度 (measure),當我們對x做變數變換時,測度保證對應機率的不變性,可以視為是Jacobian。根據熱力學定律,當熵愈大這個系統就愈無序,亦即有意義的資訊愈少,所以我們想要的愈uninformative prior就是可以讓S有最大的情況,其隱含了最少量的資訊。再來看回六面骰的例子了,prior是每個面被骰出的機率pi的離散集合,所以我們可以導出兩個約束條件 (constraints),第一個是歸一化條件6∑i=1pi=1而第二個是點數的期望值μ6∑i=1ipi=μ.為了找出S在上面這兩個條件成立下的極值,可以直接套用拉格朗日乘子法 (Lagrange's multipliers)Q=S+λ0(1−6∑i=1pi)+λ1(μ−6∑i=1ipi)其中S為Eq. (6.6)。所以極值會發生在∂Q/∂pi=0的地方 (多變數就是找梯度為0的點),對這個六面骰的例子,我們有pi=exp(−1−λ0)exp(iλ1)。雖然有兩個未知數λ0和λ1,但也有兩個約束Eq. (6.7)和Eq. (6.8),就可以得到p(θ)=1μexp(−θμ),而θ就是該面的點數。我們便可以將Eq. (6.9)當作求六面骰每面被骰出的機率的prior。
2 一個例子像是隨便假設flat prior: p(θ)∝C且C>0是一常量,因為在θ空間這個prior是發散的∫∞−∞p(θ)dθ→∞,這種prior也稱作improper prior。不過只要posterior是well-defined,prior是不是improper沒有關係,另外我們也可以設定θ必須處在一個區間,這樣他就不會發散了
2. 模型M的選擇
就像天花的例子一樣,如果只有一種模型 (沒有水痘可比),就沒有什麼必要使用貝氏推論,長斑痘無疑是染上天花了。需要貝氏推論的地方在於對同一種狀況 (觀測資料D),我們可能有多個模型都可以符合,但基於每個模型的主觀先驗 (prior),我們希望可以得出哪個模型符合觀測的勝算最大。給定了D,我們心中有兩種可能描述D的說法,即M1和M2,至於誰是最有可能的說法呢? 則可以透過勝算比 (odds ratio,一說幾率,不是機率) 來估算,定義為Q21=p(M2|D)p(M1|D).通常來說:
- Q21>100:資料支持M2的證據是決定性的
- 10≲:資料強烈支持M_2
- Q_{21}<3:資料對M_2的支持只能算勉勉強強,基本上兩個模型不分軒輊
2.1 再一個例子:拋硬幣
數學總是很抽象,我們舉的例子來輔助。我手邊有一枚硬幣,拋了N次後要拋出幾次正面才能說硬幣是公正的?
N=10
|
N=20
|
|
正面
|
3
|
11
|
反面
|
7
|
9
|
從表1中我給出兩個假設,一個是硬幣是公正的M_1,拋出正面的機率是b_1=0.5,而從拋10次的結果來看,我覺得硬幣比較偏向反面,對M_2而言我可以認為b_2=0.3,另外從資料來看我已經假定了硬幣是不公正的,我可以選擇讓p(M_2)這個prior比p(M_1)大一點,假定跟拋10次的結果一樣是7-3比。另外拋硬幣是個二項式檢定,它的data likelihood可以表示成p(k|M_i)=C^N_k b_i^k (1-b_i)^{N-k}其中k是拋出正面的次數。對拋10次而言,我有勝算比 (二項式係數在這邊都相互消去了)Q_{21}=\frac{0.3^3(1-0.3)^7\times 7}{0.5^3(1-0.5)^7\times 3}\approx 5.31.所以從拋10次的資料來看,加上我的偏見,有一定的勝算顯示硬幣是不公正的,不過由於Q_{21}沒有大於10,我還不敢斷定。為了更加確定,我又多拋了幾次,現在我的資料D來到了拋出20次,結果也如表1所示。我可以依照新的資料更新勝算比得到Q_{21}=\frac{0.3^{11}(1-0.3)^{9}\times 7}{0.5^{11}(1-0.5)^9\times 3}\approx 0.17.哇,翻盤!看起來新的資料favor硬幣是公正的,即使我讓不公正的權重一開始比較重 (7-3比)。所以從這個例子也可以看到posterior隨著資料的更新而有變化,這是歷時詮釋的另一個驗證。
拋硬幣的例子算是單純,真實世界的問題可能無法這麼快就猜出data likelihood,另外不同模型的參數數量也可能不一樣,如果勝算比顯示兩個模型解釋D的能力不分軒輊,一個簡單判定應該選擇哪個模型的方法是利用奧坎剃刀 (Occam's razor) 的原則:較少即是較好,我們會選擇參數數量比較少的那個模型作為答案。接下來我想要談的是用貝氏推論做參數的估計,我們會使用到MLE的方法,不過由於再寫下去篇幅就太大了,所以我們把P&S6拆成兩部分,剩下的留到下篇再討論囉!
留言
張貼留言