MCMC及其应用

时间:2022-11-03 21:50:06 浏览量:

【摘要】本篇论文主要介绍了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.

推荐访问:及其应用 MCMC