随机变量的变换的Box-Muller方法
字数 2367 2025-11-05 23:46:43

随机变量的变换的Box-Muller方法

Box-Muller方法是一种通过变换均匀随机变量生成标准正态分布随机变量的重要技术。其核心思想是通过二维均匀随机变量的变换,得到一对独立的标准正态分布随机变量。下面逐步展开说明:


1. 问题背景与动机

  • 在模拟中常需要生成正态分布随机数,但直接从正态分布中采样较困难。
  • 均匀随机数(如由伪随机数生成器产生)容易获得。
  • Box-Muller方法解决了如何将均匀分布转换为正态分布的问题。

2. 基本思路:极坐标变换

\(U_1, U_2\) 是独立且服从 \(\text{Uniform}(0,1)\) 的随机变量。定义变换:

\[R = \sqrt{-2 \ln U_1}, \quad \Theta = 2\pi U_2. \]

则随机变量:

\[Z_1 = R \cos \Theta, \quad Z_2 = R \sin \Theta \]

相互独立,且均服从标准正态分布 \(N(0,1)\)


3. 推导过程

(1)联合分布变换

  • \((U_1, U_2)\) 的联合概率密度函数为:

\[ f_{U_1,U_2}(u_1,u_2) = 1, \quad 0 < u_1, u_2 < 1. \]

  • 变换的逆映射为:

\[ u_1 = e^{-(z_1^2 + z_2^2)/2}, \quad u_2 = \frac{1}{2\pi} \arctan\left( \frac{z_2}{z_1} \right). \]

  • 通过雅可比行列式计算变换后的密度函数。更直接的方法是使用极坐标:令

\[ R = \sqrt{-2 \ln U_1}, \quad \Theta = 2\pi U_2, \]

\((R, \Theta)\) 的联合密度函数为:

\[ f_{R,\Theta}(r,\theta) = f_{U_1,U_2}(u_1,u_2) \left| \frac{\partial(u_1,u_2)}{\partial(r,\theta)} \right|. \]

\(u_1 = e^{-r^2/2}, u_2 = \theta/(2\pi)\) 得:

\[ \left| \frac{\partial(u_1,u_2)}{\partial(r,\theta)} \right| = \left| \begin{matrix} -r e^{-r^2/2} & 0 \\ 0 & 1/(2\pi) \end{matrix} \right| = \frac{r}{2\pi} e^{-r^2/2}. \]

因此:

\[ f_{R,\Theta}(r,\theta) = 1 \cdot \frac{r}{2\pi} e^{-r^2/2}, \quad r>0, \, 0 \leq \theta < 2\pi. \]

(2)分解为独立分布

  • 联合密度可分解为:

\[ f_{R,\Theta}(r,\theta) = \underbrace{r e^{-r^2/2}}_{f_R(r)} \cdot \underbrace{\frac{1}{2\pi}}_{f_\Theta(\theta)}, \]

表明 \(R\)\(\Theta\) 独立,\(\Theta \sim \text{Uniform}(0, 2\pi)\)\(R\) 的密度为瑞利分布(Rayleigh distribution)。

(3)转换为正态分布

  • \(Z_1 = R \cos\Theta, Z_2 = R \sin\Theta\)。由二维变换的雅可比行列式(极坐标到直角坐标)为 \(r\),得:

\[ f_{Z_1,Z_2}(z_1,z_2) = f_{R,\Theta}(r,\theta) \cdot \frac{1}{r} = \frac{1}{2\pi} e^{-(z_1^2 + z_2^2)/2}. \]

这正是两个独立标准正态分布的联合密度函数。


4. 算法实现步骤

  1. 生成两个独立的 \(U_1, U_2 \sim \text{Uniform}(0,1)\)
  2. 计算:

\[ Z_1 = \sqrt{-2 \ln U_1} \cdot \cos(2\pi U_2), \quad Z_2 = \sqrt{-2 \ln U_1} \cdot \sin(2\pi U_2). \]

  1. 输出 \(Z_1, Z_2\) 作为一对独立的标准正态随机数。

5. 改进与变体

  • Marsaglia极坐标方法:为避免计算三角函数,可先生成单位圆内的均匀点 \((V_1, V_2)\),令 \(S = V_1^2 + V_2^2\),若 \(S \leq 1\),则取:

\[ Z_1 = V_1 \sqrt{-2 \ln S / S}, \quad Z_2 = V_2 \sqrt{-2 \ln S / S}. \]

此法更高效,但需要拒绝部分采样点。


6. 应用场景

  • 蒙特卡洛模拟中生成正态分布随机数。
  • 金融工程、物理模拟等需要正态随机数的领域。
  • 作为更复杂抽样方法(如MCMC)的基础组件。

7. 注意事项

  • 直接计算对数函数和三角函数可能较慢,在实际应用中需权衡效率。
  • 对于高维正态分布,可通过生成多个独立标准正态变量并线性变换得到。

通过以上步骤,Box-Muller方法将均匀分布巧妙地转换为正态分布,体现了概率变换在随机数生成中的实用价值。

随机变量的变换的Box-Muller方法 Box-Muller方法是一种通过变换均匀随机变量生成标准正态分布随机变量的重要技术。其核心思想是通过二维均匀随机变量的变换,得到一对独立的标准正态分布随机变量。下面逐步展开说明: 1. 问题背景与动机 在模拟中常需要生成正态分布随机数,但直接从正态分布中采样较困难。 均匀随机数(如由伪随机数生成器产生)容易获得。 Box-Muller方法解决了如何将均匀分布转换为正态分布的问题。 2. 基本思路:极坐标变换 设 \( U_ 1, U_ 2 \) 是独立且服从 \( \text{Uniform}(0,1) \) 的随机变量。定义变换: \[ R = \sqrt{-2 \ln U_ 1}, \quad \Theta = 2\pi U_ 2. \] 则随机变量: \[ Z_ 1 = R \cos \Theta, \quad Z_ 2 = R \sin \Theta \] 相互独立,且均服从标准正态分布 \( N(0,1) \)。 3. 推导过程 (1)联合分布变换 \( (U_ 1, U_ 2) \) 的联合概率密度函数为: \[ f_ {U_ 1,U_ 2}(u_ 1,u_ 2) = 1, \quad 0 < u_ 1, u_ 2 < 1. \] 变换的逆映射为: \[ u_ 1 = e^{-(z_ 1^2 + z_ 2^2)/2}, \quad u_ 2 = \frac{1}{2\pi} \arctan\left( \frac{z_ 2}{z_ 1} \right). \] 通过雅可比行列式计算变换后的密度函数。更直接的方法是使用极坐标:令 \[ R = \sqrt{-2 \ln U_ 1}, \quad \Theta = 2\pi U_ 2, \] 则 \( (R, \Theta) \) 的联合密度函数为: \[ f_ {R,\Theta}(r,\theta) = f_ {U_ 1,U_ 2}(u_ 1,u_ 2) \left| \frac{\partial(u_ 1,u_ 2)}{\partial(r,\theta)} \right|. \] 由 \( u_ 1 = e^{-r^2/2}, u_ 2 = \theta/(2\pi) \) 得: \[ \left| \frac{\partial(u_ 1,u_ 2)}{\partial(r,\theta)} \right| = \left| \begin{matrix} -r e^{-r^2/2} & 0 \\ 0 & 1/(2\pi) \end{matrix} \right| = \frac{r}{2\pi} e^{-r^2/2}. \] 因此: \[ f_ {R,\Theta}(r,\theta) = 1 \cdot \frac{r}{2\pi} e^{-r^2/2}, \quad r>0, \, 0 \leq \theta < 2\pi. \] (2)分解为独立分布 联合密度可分解为: \[ f_ {R,\Theta}(r,\theta) = \underbrace{r e^{-r^2/2}} {f_ R(r)} \cdot \underbrace{\frac{1}{2\pi}} {f_ \Theta(\theta)}, \] 表明 \( R \) 和 \( \Theta \) 独立,\( \Theta \sim \text{Uniform}(0, 2\pi) \),\( R \) 的密度为瑞利分布(Rayleigh distribution)。 (3)转换为正态分布 令 \( Z_ 1 = R \cos\Theta, Z_ 2 = R \sin\Theta \)。由二维变换的雅可比行列式(极坐标到直角坐标)为 \( r \),得: \[ f_ {Z_ 1,Z_ 2}(z_ 1,z_ 2) = f_ {R,\Theta}(r,\theta) \cdot \frac{1}{r} = \frac{1}{2\pi} e^{-(z_ 1^2 + z_ 2^2)/2}. \] 这正是两个独立标准正态分布的联合密度函数。 4. 算法实现步骤 生成两个独立的 \( U_ 1, U_ 2 \sim \text{Uniform}(0,1) \)。 计算: \[ Z_ 1 = \sqrt{-2 \ln U_ 1} \cdot \cos(2\pi U_ 2), \quad Z_ 2 = \sqrt{-2 \ln U_ 1} \cdot \sin(2\pi U_ 2). \] 输出 \( Z_ 1, Z_ 2 \) 作为一对独立的标准正态随机数。 5. 改进与变体 Marsaglia极坐标方法 :为避免计算三角函数,可先生成单位圆内的均匀点 \( (V_ 1, V_ 2) \),令 \( S = V_ 1^2 + V_ 2^2 \),若 \( S \leq 1 \),则取: \[ Z_ 1 = V_ 1 \sqrt{-2 \ln S / S}, \quad Z_ 2 = V_ 2 \sqrt{-2 \ln S / S}. \] 此法更高效,但需要拒绝部分采样点。 6. 应用场景 蒙特卡洛模拟中生成正态分布随机数。 金融工程、物理模拟等需要正态随机数的领域。 作为更复杂抽样方法(如MCMC)的基础组件。 7. 注意事项 直接计算对数函数和三角函数可能较慢,在实际应用中需权衡效率。 对于高维正态分布,可通过生成多个独立标准正态变量并线性变换得到。 通过以上步骤,Box-Muller方法将均匀分布巧妙地转换为正态分布,体现了概率变换在随机数生成中的实用价值。