蒙特卡洛积分法的方差缩减技术——控制变量法
题目描述
计算定积分 \(I = \int_a^b f(x) \, dx\)。若直接使用蒙特卡洛积分法(即随机均匀采样求均值),估计值的方差可能较大。要求采用控制变量法降低方差,并分析其效果。
解题过程
- 基础蒙特卡洛积分法回顾
- 将积分改写为期望形式:
\[ I = \int_a^b f(x) dx = (b-a) \cdot \mathbb{E}[f(X)], \quad X \sim U(a,b) \]
- 估计量:随机采样 \(n\) 个点 \(x_i \sim U(a,b)\),计算
\[ \hat{I}_{\text{MC}} = \frac{b-a}{n} \sum_{i=1}^n f(x_i) \]
- 方差为:
\[ \text{Var}(\hat{I}_{\text{MC}}) = \frac{(b-a)^2}{n} \text{Var}(f(X)) \]
- 控制变量法的核心思想
- 引入一个已知积分值 \(I_g = \int_a^b g(x) dx\) 的辅助函数 \(g(x)\),且 \(g(x)\) 与 \(f(x)\) 高度相关。
- 构造新函数:
\[ h(x) = f(x) - c \cdot (g(x) - \mu_g), \quad \mu_g = \frac{I_g}{b-a} \]
其中 $ c $ 为待定系数,$ \mu_g $ 是 $ g(x) $ 在 $ [a,b] $ 上的平均值。
- 易验证:
\[ \int_a^b h(x) dx = I - c \cdot (I_g - I_g) = I \]
即 $ h(x) $ 的积分与原函数相同。
- 最优系数 \(c^*\) 的确定
- 目标是最小化 \(\text{Var}(h(X)) = \text{Var}(f(X) - c g(X))\)。
- 通过求导解出:
\[ c^* = \frac{\text{Cov}(f(X), g(X))}{\text{Var}(g(X))} \]
- 此时方差缩减为:
\[ \text{Var}(h(X)) = \text{Var}(f(X)) \cdot (1 - \rho^2) \]
其中 $ \rho $ 为 $ f $ 与 $ g $ 的相关系数。
- 实际计算步骤
- 步骤1:选择控制变量函数 \(g(x)\),要求其积分值已知且与 \(f(x)\) 强相关(如 \(g(x)\) 是 \(f(x)\) 的近似函数)。
- 步骤2:采样 \(n\) 个随机点 \(x_i \sim U(a,b)\),计算 \(f(x_i)\) 和 \(g(x_i)\)。
- 步骤3:估计协方差和方差:
\[ \hat{c}^* = \frac{\sum (f_i - \bar{f})(g_i - \bar{g})}{\sum (g_i - \bar{g})^2} \]
- 步骤4:计算控制变量估计值:
\[ \hat{I}_{\text{CV}} = \frac{b-a}{n} \sum_{i=1}^n \left[ f(x_i) - \hat{c}^* (g(x_i) - \mu_g) \right] \]
- 示例与效果分析
- 例:计算 \(I = \int_0^1 e^x dx\),真实值 \(e-1 \approx 1.71828\)。
- 选择 \(g(x) = 1 + x\)(线性近似 \(e^x\)),已知 \(\int_0^1 g(x) dx = 1.5\)。
- 通过少量采样可计算 \(\hat{c}^*\),代入后估计 \(\hat{I}_{\text{CV}}\)。
- 对比普通蒙特卡洛法:控制变量法方差显著降低,尤其当 \(g(x)\) 与 \(f(x)\) 形状接近时。
关键点总结
- 控制变量法通过引入相关性强的辅助函数,利用已知信息减少估计波动。
- 效果取决于 \(f\) 与 \(g\) 的相关性:相关系数越接近 \(\pm 1\),方差缩减越明显。
- 实际中需权衡 \(g(x)\) 的选取难度与方差缩减收益。