馬可夫鏈蒙地卡羅(MCMC)(Markov chain Monte Carlo)
/ MAR-kof chayn MON-tee KAR-loh /
馬可夫鏈蒙地卡羅,是一種從「你無法直接取樣的機率分布」中抽取樣本的方法——而這恰恰是你面對大多數貝氏後驗時所陷入的困境。設想你想探索一片廣袤、被霧籠罩的地貌,其中高地意味著高機率,可你從空中看不見它;你能做的,只是用腳去感受腳下的坡度。MCMC派出一位漫遊者,邁著隨機的步子,朝高處攀爬的次數多於下行;走過漫漫長路之後,漫遊者流連之處,便描繪出了這片地貌的形狀。
具體說來,行走者身處某點;它提議一個就近的隨機移動;它以一個「偏愛更高機率目的地」的機率接受這一移動。「馬可夫」這一部分,意味著每一步只取決於它當前所站之處,而非它的整段歷史。那條了不起的保證是:只要你讓它走得足夠久,它所造訪之處的集合,在統計上便與目標分布的真正樣本無從區分——於是你只消清點這一路足跡,便能算出平均、找出可信區間、回答貝氏問題。
它為何重要:MCMC讓「對複雜、貼近現實的模型做完整的貝氏推論」成為可行,是現代統計學的一塊基石。它的誠實,藏在那些小字裡。它只有在經過一段「預熱期」之後才匹配上目標,而那段時長得由你來判斷;相鄰的樣本彼此相關,所以走一千步抵不上一千次獨立抽取;而在那些有著彼此分離的山峰的刁鑽地貌上,行走者可能被困在某一座山頭,對其餘的從不匯報。診斷這條鏈是否真正探遍了一切(即「收斂」),是這項工作中無可迴避、有時又吃力不討好的一環。
擬合一個貝氏模型,研究運動如何影響血壓,其中有好幾個相互作用的未知量。把它們「一齊」考慮的那個後驗,根本寫不出來。MCMC在參數組合的空間裡行走,比方說走上50,000步;你把頭10,000步當作預熱而丟棄,再對其餘的做匯總。所保留樣本的直方圖,就是你的後驗——它的中心是估計,它的散布是不確定性。
MCMC把一個寫不出來的後驗,變成一堆你只需清點的樣本——在丟棄預熱期之後。
最危險的失敗模式是悄無聲息的:一條鏈可能看起來無比健康,實則被困在一個多峰後驗的某座峰附近,一絲不苟地匯報著一個自信的答案,卻漏掉了機率的整片區域。收斂診斷能降低這種風險,卻永遠無法徹底證明這條鏈探遍了一切。