蒙特卡罗法(也称为统计模拟方法),是通过从概率模型的随机抽样进行近似数据的计算方法。MCMC则是以马尔可夫链为概率模型的蒙特卡罗法。
MCMC方法的基本思想是:通过蒙特卡罗法构建一个马尔可夫链,使其平稳分布就是要进行抽样的分布,首先基于该马尔可夫链进行随机游走,产生岩本序列,之后使该平稳分布的样本进行近似的数值计算。
蒙特卡罗法要解决的问题是,假设概率分布的定义已知,通过抽样获得概率分布的随机样本,通过得到的样本对概率分布进行分析,蒙特卡罗法的核心是随机抽样。
一般地蒙特卡罗法右直接抽样法,接受-拒绝抽样法,重复性抽样法等。后两种方法适合于概率密度函数复杂,不能直接抽样的方法。
蒙特卡罗法按照概率分布p(x)独立的选择n个样本,计算函数f(X)的样本均值
f ^ n = 1 n ∑ i = 1 n f ( x i ) \hat{f}_n=\frac{1}{n}\sum_{i=1}^n{f(x_i)} f^n=n1i=1∑nf(xi)
作为数学期望的近似值,根据大数定理可知,当样本容量增大时,样本均以概率1收敛于数学期望
E p ( x ) [ f ( x ) ] = 1 x = n ∑ i = 1 n f ( x i ) E_{p(x)}[f(x)]=\frac{1}{x=n}\sum_{i=1}^n{f(x_i)} Ep(x)[f(x)]=x=n1i=1∑nf(xi)
∫ x h ( x ) d x = ∫ x f ( x ) p ( x ) d x = E p ( x ) [ f ( x ) ] = 1 n ∑ i = 1 n f ( x i ) \int^{}_x{h(x)}{\rm d}x=\int^{}_x{f(x)p(x)}{\rm d}x=E_{p(x)[f(x)]}=\frac{1}{n}\sum_{i=1}^nf(x_i) ∫xh(x)dx=∫xf(x)p(x)dx=Ep(x)[f(x)]=n1i=1∑nf(xi)
连续状态的马尔可夫链定义在连续状态空间,转移概率分布由概率转移核或转移核表示。
设S是连续状态空间,对任意x,A,转移核P(x,A),表示从x-A的转移概率定义为
P ( x , A ) = ∫ A p ( x , y ) d y P(x,A)=\int^{}_A{p(x,y)}{\rm d}y P(x,A)=∫Ap(x,y)dy
若马尔可夫链的状态空间S上的概率分布 π ( y ) = ∫ p ( x , y ) π ( x ) d x \pi(y)=\int^{}_{}{p(x,y)\pi(x)}{\rm d}x π(y)=∫p(x,y)π(x)dx则称分布为该马尔可夫链的平稳分布
不可约时刻0从状态j出发,时刻t到达i的状态i的概率大于0,则称不可约。直观上,一个不可约的马尔可夫链从任意状态出发,经过充分长时间后可以达到任意状态。
非周期如果时刻0从状态i出发,t时刻返回状态的所有时常的最大公约数是1,则称是非周期的。直观的,一个非周期性得马尔可夫链,不存在一个状态,从这个状态出发,再返回这个状态时所经历得时间长呈一定得周期性。
正常返一个正常返得马尔可夫链,其中任意一个状态,从其他任意一个状态出发,当时间趋于无穷时,首次转移到这个状态得概率不为0.
不可约、非周期、正常返得马尔可夫链,有唯一平稳分布存在。
遍历定理若马尔可夫链不可约、非周期、正常返,则该马尔可夫链有唯一平稳分布 π \pi π,并且转移概率得极限分布时马尔可夫链的平稳分布。样本均值可以认为是时间均值,数学期望是空间均值。当时间趋于无穷时,时间均值等于空间均值。
可逆马尔可夫链直观的,如果有可逆马尔可夫链,那么以该马尔可夫链的平稳分布作为初始分布,进行随机状态转移,无论是面向未来还是面向过去,任何一个时刻的状态分布都是平稳分布。
可逆的马尔可夫链一定有唯一的平稳分布,给出一个马尔可夫链有平稳分布的充分条件。也就是说,可逆马尔可夫链满足遍历定理。
MCMC适合于随机变量是多元的,密度函数是非标准形式的,随机变量各分量不独立的情况。
常用的MCMC有Metropolis-Hastings算法,吉布斯抽样
基本步骤:
(1)在随机变量x的状态空间S上构造一个满足遍历定理的马尔可夫链,使其平稳分布为目标分布p(x)
(2)从状态空间的某一点x0出发,用构造的马尔可夫链进行随机游走,产生样本序列
(3)应用马尔可夫链的遍历定理,确定正整数m,n,得到样本集合,求得函数的均值。
输入:抽样的目标分布的密度函数p(x),函数f(x)
输出:p(x)的随机样本,函数样本均值fmn
参数:收敛步数m,迭代步数n
(1)任意选取一个初始值x0
(2)对i=0,…n循环执行
(a)设状态xi-1=x,按照建议分布q(x,x’)随机抽取一个候选状态x’
(b)计算接受概率 α ( x , x ′ ) = m i n ( 1 , p ( x ′ ) q ( x ′ , x ) p ( x ) q ( x , x ′ ) ) {\alpha}(x,x')=min(1,\frac{p(x')q(x',x)}{p(x)q(x,x')}) α(x,x′)=min(1,p(x)q(x,x′)p(x′)q(x′,x))
(c)从区间(0,1)中按照均匀分布随机抽取一个数u,若u<=接受概率,则xi=x’,否则xi=x
(3)得到样本集合
(4)计算 f m n = 1 n − m ∑ i = m + 1 n f ( x i ) f_{mn}=\frac{1}{n-m}\sum_{i=m+1}^n{f(x_i)} fmn=n−m1∑i=m+1nf(xi)
吉布斯抽样用于多元变量联合分布的抽样和估计。基本做法是,从联合概率分布定义满条件概率分布,依次对满条件概率分布进行抽样,得到联合分布的随机样本。
输入:目标概率分布的密度函数p(x),函数f(x)
输出:p(x)的随机样本,样本均值
参数:收敛步数m,迭代步数n
(1)初始化。给出初始样本x(0)
(2)对i循环执行
由满条件分布p(x1|x2,xk)抽取xi
…
…xk
得到第i次迭代值
(3)得到样本集合
(4)计算均值