蒙特卡洛积分法的方差缩减技术——分层采样法
题目描述
考虑计算定积分 \(I = \int_a^b f(x) \, dx\)。若直接使用蒙特卡洛积分法(在区间 \([a, b]\) 上均匀随机采样求均值),方差可能较大。分层采样法通过将积分区间划分为多个子区间(层),在每个子区间内独立进行蒙特卡洛采样,最终加权合并结果,以降低整体方差。要求推导分层采样法的数学形式,分析其方差缩减原理,并讨论如何优化分层策略(如层数选择、样本分配)。
解题过程
1. 基础蒙特卡洛积分法回顾
直接蒙特卡洛积分法在 \([a, b]\) 上生成 \(n\) 个均匀随机点 \(x_i\),估计积分值为:
\[\hat{I} = \frac{b-a}{n} \sum_{i=1}^n f(x_i), \]
其方差为:
\[\operatorname{Var}(\hat{I}) = \frac{(b-a)^2}{n} \sigma^2_f, \quad \sigma^2_f = \frac{1}{b-a} \int_a^b \left( f(x) - \bar{f} \right)^2 dx, \]
其中 \(\sigma^2_f\) 是 \(f(x)\) 在 \([a, b]\) 上的方差。若 \(f(x)\) 波动较大,直接法的方差较高。
2. 分层采样法的基本思想
将区间 \([a, b]\) 划分为 \(m\) 个不相交的子区间(层) \([a_{j-1}, a_j]\),其中 \(a_0 = a\),\(a_m = b\)。设第 \(j\) 层的宽度为 \(h_j = a_j - a_{j-1}\),满足 \(\sum_{j=1}^m h_j = b-a\)。
在每个层内独立进行蒙特卡洛采样:第 \(j\) 层抽取 \(n_j\) 个均匀随机点 \(x_{j,k}\),总样本数 \(n = \sum_{j=1}^m n_j\)。第 \(j\) 层的积分估计为:
\[\hat{I}_j = \frac{h_j}{n_j} \sum_{k=1}^{n_j} f(x_{j,k}), \]
整体积分估计为各层估计之和:
\[\hat{I}_{\text{strat}} = \sum_{j=1}^m \hat{I}_j. \]
3. 方差分析
由于各层独立采样,总方差为各层方差之和:
\[\operatorname{Var}(\hat{I}_{\text{strat}}) = \sum_{j=1}^m \frac{h_j^2}{n_j} \sigma_j^2, \quad \sigma_j^2 = \frac{1}{h_j} \int_{a_{j-1}}^{a_j} \left( f(x) - \bar{f}_j \right)^2 dx, \]
其中 \(\bar{f}_j = \frac{1}{h_j} \int_{a_{j-1}}^{a_j} f(x) dx\) 是第 \(j\) 层内 \(f(x)\) 的均值。
与直接法方差对比:
\[\operatorname{Var}(\hat{I}) = \frac{(b-a)^2}{n} \sigma_f^2 = \frac{1}{n} \sum_{j=1}^m h_j \sigma_j^2 + \frac{1}{n} \sum_{j=1}^m h_j (\bar{f}_j - \bar{f})^2, \]
其中 \(\bar{f} = \frac{1}{b-a} \int_a^b f(x) dx\)。分层法的方差表达式缺少第二项(层间方差),因此总方差更小。
4. 样本分配优化
固定总样本数 \(n\),如何分配 \(n_j\) 以最小化总方差?使用拉格朗日乘数法,最小化目标函数:
\[L = \sum_{j=1}^m \frac{h_j^2 \sigma_j^2}{n_j} + \lambda \left( \sum_{j=1}^m n_j - n \right). \]
对 \(n_j\) 求偏导并令为0:
\[\frac{\partial L}{\partial n_j} = -\frac{h_j^2 \sigma_j^2}{n_j^2} + \lambda = 0 \implies n_j \propto h_j \sigma_j. \]
即最优分配策略是使每层样本数 \(n_j\) 与该层的宽度 \(h_j\) 和标准差 \(\sigma_j\) 成正比。
5. 分层策略选择
- 层数选择:层数 \(m\) 增加可进一步降低方差,但受计算成本限制。通常根据 \(f(x)\) 的复杂度权衡。
- 分层边界:若 \(f(x)\) 变化剧烈处设置更密的层,可更有效降低方差。常见策略是等宽分层(\(h_j\) 恒定)或根据 \(|f'(x)|\) 调整分层密度。
- 实际应用:若 \(\sigma_j\) 未知,可先进行预采样估计各层方差,再调整样本分配。
总结
分层采样法通过将积分区间划分为多个层,分别估计后再合并,有效利用了函数在不同层内的局部特性,降低了整体方差。优化样本分配和分层策略可进一步提升效率。该方法特别适用于函数在区间内变化不均匀的场景。