3. 蒙特卡洛积分与采样
在进入马尔可夫链蒙特卡洛之前,先把最基础的一环讲透:采样如何变成积分。蒙特卡洛方法的核心思想可以用一句话概括——把“求积分”转化为“求随机变量的平均”。只要能从目标分布中独立地抽取样本,就能用样本均值逼近期望,而期望本质上就是一个积分。理解这条链路,后续的 MCMC 才有落脚点:MCMC 只是换了一种“抽样本”的方式,估计公式本身并没有变。
一、从积分到期望:同一个问题的两种写法
设目标分布为 p(x),我们关心的量是函数 f(x) 在该分布下的期望:
I = E_p[f(x)] = ∫ f(x) p(x) dx
如果 p(x) 是概率密度,那么 f(x)p(x) 的积分就是 f 的加权平均。蒙特卡洛估计的做法是:从 p(x) 中抽取 N 个独立样本 x₁, x₂, …, x_N,用样本均值代替积分:
Î = (1/N) Σᵢ f(xᵢ)
这个估计是无偏的,即 E[Î] = I;其方差为 Var(f(x))/N,因此标准误差按 1/√N 衰减。这意味着要把误差缩小一半,样本量需要增加到 4 倍。这是蒙特卡洛方法最重要的工程直觉之一:精度提升的代价是平方级的样本增长。
二、随机数生成:一切采样的起点
计算机只能产生伪随机数。实践中我们通常先得到 [0,1) 上的均匀随机数 u,再通过变换得到目标分布样本。最常用的两种变换是:
- 逆变换采样:若
F是目标分布的累积分布函数,则x = F⁻¹(u)服从目标分布。例如指数分布F(x)=1-e^{-λx},其逆为x = -ln(1-u)/λ。 - 拒绝采样:用一个容易采样的提议分布
q(x)和一个常数M使得p(x) ≤ M q(x),从q抽样本并以p(x)/(M q(x))的概率接受。接受率越低,效率越差。
当目标分布是标准形式(正态、伽马、贝塔等)时,直接调用库函数即可;但当 p(x) 只以未归一化的形式 p̃(x) 给出、且维数较高时,逆变换和拒绝采样都会失效——这正是 MCMC 要解决的问题。
三、估计流程与误差判断
下面这张图把“随机数 → 样本 → 估计 → 误差判断”的完整链路画出来,并标出了每一步的关键参数与可观测指标:
四、一个可手算的示例
假设我们要估计 I = ∫₀¹ e^{-x²} dx。这个积分没有初等原函数,但可以写成 E[f(U)],其中 U ~ U(0,1),f(u)=e^{-u²}。取 N=5 个均匀随机数(示例数据,非实测):0.12, 0.37, 0.55, 0.81, 0.94。
f(0.12)=e^{-0.0144}≈0.9857
f(0.37)=e^{-0.1369}≈0.8721
f(0.55)=e^{-0.3025}≈0.7389
f(0.81)=e^{-0.6561}≈0.5189
f(0.94)=e^{-0.8836}≈0.4133
Î = (0.9857+0.8721+0.7389+0.5189+0.4133)/5 ≈ 0.7058
真实值约为 0.7468,5 个样本的估计偏差约 0.04。样本标准差 s≈0.226,标准误差 SE≈0.101,置信区间很宽——这说明小样本下估计不可靠。把 N 增大到 10000,SE 会降到约 0.0023,估计才稳定。这个例子清楚展示了:蒙特卡洛估计的可靠性完全由样本量和样本独立性决定。
五、从独立采样到相关采样:为 MCMC 埋下伏笔
上面的推导默认样本相互独立。但在高维或复杂分布中,独立采样往往做不到,我们只能得到一条相关样本链 x₁, x₂, …。此时估计公式仍然是样本均值,但方差不再是 Var(f)/N,而要乘以一个“积分自相关时间”因子。有效样本量 N_eff = N/τ,其中 τ 反映相邻样本的相关程度。MCMC 的收敛诊断、链长选择、稀释(thinning)等实践,都是围绕这个因子展开的。
把这一节的内容压缩成一条主线:积分 = 期望 → 期望用样本均值估计 → 样本来自采样 → 采样质量决定估计质量。后续引入 MCMC 时,改变的只是“如何得到样本”这一环,而估计公式、误差分析和判断标准都沿用本节建立的框架。