邵建鑫
【摘要】本篇論文主要介紹了MCMC方法及其應用,關于MCMC方法方面:首先介紹了馬爾科夫鏈的概念,性質(主要是“無后效性”即“將來”不依賴“過去”)及時間連續的馬爾科夫鏈及馬爾科夫鏈的轉移函數,其次介紹了蒙特卡洛方法的定義和發展的過程,最后介紹了馬爾科夫鏈蒙特卡洛方法(即在蒙特卡洛模擬中利用馬爾科夫鏈方法進行抽樣從而使樣本均值達到期望均值),MCMC應用方面就是借助計算機的高速運轉能力,生成大量隨機樣本,從而進行抽樣,計算幾何圖形面積,體積等,這里介紹的兩個應用都是在Matlab中實現的,是利用MCMC方法進行Gipps抽樣產生樣本,隨著樣本的增加,樣本的自相關性降到我們所期望的水平.
【關鍵詞】MC;MCMC;Gipps抽樣
隨機模擬方法是試驗數學的一個分支.隨機模擬的思想由來已久,但是因為獲得隨機數比較困難,隨機模擬這種方法發展緩慢,現代計算機技術的發展使蒙特卡洛方法得以快速發展,它是一種另辟蹊徑的計算方法,此方法以概率統計知識作為基礎依據,利用隨機抽樣作為主要方法的計算方法.即利用隨機數進行統計試驗,從而得到統計數值,作為所求問題的解.
蒙特卡洛方法是18世紀70年代法國數學家蒲豐在計算圓周率π時率先提出,從理論上說,蒙特卡洛方法的核心是重復做大量的隨機實驗,試驗次數越多,所得到的結果越準確,直到20世紀前,盡管數學家們想盡各種各樣的方法,利用蒙特卡洛方法計算π的精確值,還是達不到所期望的精度,因此,蒙特卡洛方法發展十分緩慢.計算機的誕生和發展,使蒙特卡洛方法發展迅速,現在的蒙特卡洛方法,只需借助計算機的高速運轉能力,就可以很快得到想要的結果.
蒙特卡洛方法的基本思路是:
(1)針對具體問題建立統計概率模型,將問題所求的解轉化為該統計概率模型的概率分布或數字特征.
(2)對模型中的隨機變量建立抽樣方法,在Matlab中進行模擬實驗,得到數量足夠多的樣本,并對該事件進行統計.
(3)針對實驗的所得數據進行分析,求出想要解及其精度的偏差.
針對十分麻煩的分布,利用MCMC方法生成隨機樣本是相對困難的,所以需要一些更復雜的隨機模擬技術,馬爾科夫鏈(Markov chain)蒙特卡洛方法(即MCMC方法)就是在這種的情況下誕生的,在蒙特卡洛模擬中,我們在后驗分布中抽取樣本,只有樣本之間相互獨立,才能依據大數定律得到樣本的均值會收斂到所想要的均值.假設得到的樣本之間不是相互獨立的,這時就需要利用馬爾科夫鏈進行抽樣.
一、MCMC方法
(一)馬爾科夫鏈
在許多學科上,有很多確定性現象遵守以下演變規則:從時刻t0系統所處的狀態,可以決定系統在時刻t>t0所處的狀態,而不需要借助t0以前系統所處狀態的狀況.把上述規則應用到隨機現象中,也就是當一隨機系統遵守的是某種統計規律時,可仿照以上的規則,引入以下的無后效性或馬爾科夫性:系統在時刻t0所處的狀態為確定的情況下,系統在t>t0所處狀態的條件分布與系統在時刻t0之前所處的狀態沒有關系.通俗地講,就是在已經知道“現在”的情形下,其“將來”不依賴于“過去”.
由以上知識可得出馬爾科夫鏈的定義.
(二)MCMC方法
在MCMC中,我們在后驗分布中抽取隨機樣本,當這些隨機樣本之間互相獨立時,利用大數定律樣本的均值會收斂到所期望的均值.假設得到的樣本之間不是相互獨立的,這時就需要利用馬爾科夫鏈進行抽樣.MCMC方法就是為了這個目的而誕生的.
馬爾科夫鏈是一種離散的隨機過程,隨機過程可以看作是一個隨時間變化的隨機變量的序列,馬爾科夫鏈的定義已經在前面陳述過,下面介紹馬爾科夫鏈的一些重要性質;
馬爾科夫鏈的遍歷性表示一個系統經長時間轉移后可以達到穩定狀態,即當n>>1時,可以認為Pij(n)≈πj與起始狀態ai沒有關系.
利用馬爾科夫鏈進行模擬實驗時,在收斂前的很長一段時間內,比如,上面的前n-1次迭代中,各個狀態的邊際分布并不能被認為是穩定分布,所以在進行計算的時候,應該把這n-1個值舍去.這個過程稱為“burn-in”.
MCMC方法就是構造適當的馬爾科夫鏈進行抽樣,然后利用蒙特卡洛方法進行計算.既然馬爾科夫鏈可以收斂到平穩分布.我們可以建立一個以π為平穩分布的馬爾科夫鏈,在Matlab軟件中使這個鏈運行足夠長時間之后,可以達到穩定狀態.這時,馬爾科夫鏈的值就相當于在分布π(x)中抽取樣本.利用馬爾科夫鏈進行隨機模擬的方法稱作馬爾科夫鏈蒙特卡洛方法.
二、MCMC方法的應用
通過Gibbs抽樣得到三個二維隨機數組14,6,(0454 3,3),(0.588 1,9).依照這種迭代方法我們可以得到一條足夠長的鏈,在一開始迭代時得到的二維隨機數組可能會依賴x1的選擇,但隨著鏈的增長,這種依賴型會漸漸地消失,當n足夠大時,即可以認為前面n-1個數組還沒有擺脫這種依賴型,到第n個數組時,這種依賴性可以認為消失了,所以在第n個數組以后我們就可以得到符合f(x,y)分布的隨機數組了.這個過程在Matlab中可以得到大量的隨機樣本,我們可以作出它的散點圖和自相關圖,程序如下:
自相關圖(Autocorrelation plot):若自相關隨迭代步長的增加而減小,則說明該鏈收斂,反之,則不收斂.
在這里我們用的是自相關圖檢驗是否收斂,由自相關圖的走向可知這個過程是收斂的.
三、結束語
在本篇設計中,我主要介紹了馬爾科夫鏈(MC),馬爾科夫鏈蒙特卡洛方法(MCMC),以及MCMC的應用等,
1.在介紹馬爾科夫鏈時,馬爾科夫鏈的特性是無后效性,通俗地講就是我們知道“現在”的情況下,其“將來”不依賴于“過去”,這是馬爾科夫鏈的特性.
2.MCMC的應用主要舉了一個例子,是Gibbs抽樣,該抽樣主要是把二維及二維以上的分布轉化為一維的條件分布,從而利用一維的條件分布進行抽樣,得到大量的隨機樣本,本篇論文將這個過程在Matlab中實現得到大量的隨機樣本,并且繪制了該隨機樣本的散點圖和一維的自相關圖,通過自相關圖得到了自相關隨迭代步長的增加而減小,從而得到該隨機分布是收斂的.
【參考文獻】
[1]張偉平.馬爾科夫蒙特卡洛方法[Z].2009.
[2]張忠誠.MCMC方法及應用[J].武漢:湖北大學,2008.
[3]胡良劍,孫曉軍.MATLAB數學實驗[M].北京:高等教育出版社,2014.
[4] 盛驟,謝式千,潘承毅.概率論與數理統計[M].北京:高等教育出版社,2015.
[5]中山大學數學力學系《概率論及數理統計》編寫小組編.概率論及數理統計[M].北京:高等教育出版社,1986.
[6]王梓坤.隨機過程通論[M].北京:北京師范大學出版社,1996.