不错的文章:LDA-math-MCMC 和 Gibbs Sampling
简单概率分布的模拟
Box-Muller变换原理详解
本质上来说,计算机只能生产符合均匀分布的采样。如果要生成其他分布的采样,就需要借助一些技巧性的方法,例如我们在前面的文章提到过的逆变换采样、拒绝采样以及自适应的拒绝采样等等。
涉及到 "逆变换" [Bayes] runif: Inversion Sampling
例如:U1, U2是均匀分布,可得到两个高斯分布的变量X, Y。
复杂概率分布的模拟
使用的必要性
当) 是个高维的分布的时候,样本的生成就可能很困难了。 譬如有如下的情况
-
-
- ) 我们是可以计算的,但是底下的积分式无法显式计算。
- ) 是高维的,这种情形就更加明显。
-
此时就需要使用一些更加复杂的随机模拟的方法来生成样本。而本节中将要重点介绍的 MCMC(Markov Chain Monte Carlo) 和 Gibbs Sampling算法就是最常用的一种,这两个方法在现代贝叶斯分析中被广泛使用。要了解这两个算法,我们首先要对马氏链的平稳分布的性质有基本的认识。
马氏链及其平稳分布
平稳性:这个收敛行为主要是由概率转移矩阵P决定的。
自然的,这个收敛现象并非是我们这个马氏链独有的,而是绝大多数马氏链的共同行为,关于马氏链的收敛我们有如下漂亮的定理:
马氏链定理: 如果一个非周期马氏链具有转移概率矩阵), 我们有
- ⎤⎦⎥⎥⎥⎥⎥
- j
- π 的唯一非负解
其中, 1
马氏链的平稳分布。
这个马氏链的收敛定理非常重要,所有的 MCMC(Markov Chain Monte Carlo) 方法都是以这个定理作为理论基础的。
历史由来
马氏链的平稳分布 --> Metropolis算法
对于给定的概率分布⋯。
这个绝妙的想法在1953年被 Metropolis想到了,为了研究粒子系统的平稳性质, Metropolis 考虑了物理学中常见的波尔兹曼分布的采样问题,首次提出了基于马氏链的蒙特卡罗方法,即Metropolis算法,并在最早的计算机上编程实现。Metropolis 算法是首个普适的采样方法,并启发了一系列 MCMC方法,所以人们把它视为随机模拟技术腾飞的起点。 Metropolis的这篇论文被收录在《统计学中的重大突破》中, Metropolis算法也被遴选为二十世纪的十个最重要的算法之一。
改进变种:Metropolis-Hastings 算法
我们接下来介绍的MCMC 算法是 Metropolis 算法的一个改进变种,即常用的 Metropolis-Hastings 算法。
Gibbs Sampling
对于,由于接受率 1 呢?