ARTICLE

逆变换采样

逆变换采样 (Inverse Transform Sampling) 逆变换采样(Inverse Transform Sampling),也称为逆变换法或逆累积分布函数法(Inverse CDF Method),是随机数生成领域中最基本、最广泛使用的算法之一。该方法的核心思想是:如果能够生成均匀分布 U(0,1) 的随机数,那么通过目标分布的累积分布函数(C

浏览 4 更新 2025-10-26

逆变换采样 (Inverse Transform Sampling)

逆变换采样(Inverse Transform Sampling),也称为逆变换法逆累积分布函数法(Inverse CDF Method),是随机数生成领域中最基本、最广泛使用的算法之一。该方法的核心思想是:如果能够生成均匀分布 U(0,1)U(0,1) 的随机数,那么通过目标分布的累积分布函数(CDF)的逆函数进行变换,就可以得到服从该目标分布的随机样本。

基本原理

逆变换采样建立在概率积分变换(Probability Integral Transform)的基础之上。令 XX 为一个连续随机变量,其累积分布函数FX(x)=P(Xx)F_X(x) = P(X \leq x)。概率积分变换定理指出,随机变量 U=FX(X)U = F_X(X) 服从标准均匀分布 U(0,1)U(0,1)

反过来,如果 UU(0,1)U \sim U(0,1),且 FXF_X 是严格单调递增且连续的,那么随机变量 X=FX1(U)X' = F_X^{-1}(U) 的累积分布函数就是 FXF_X,即 XX'XX 服从相同的分布。这里 FX1F_X^{-1} 称为 FXF_X逆累积分布函数(分位数函数)。

算法步骤如下:

  1. 均匀分布 U(0,1)U(0,1) 中生成一个随机数 uu
  2. 计算 x=FX1(u)x = F_X^{-1}(u),其中 FX1F_X^{-1} 是目标分布的逆累积分布函数。
  3. 输出 xx 作为服从目标分布 FXF_X 的随机样本。

几何解释

从几何角度看,逆变换采样方法利用了累积分布函数的值域是 [0,1][0,1] 这一事实。在纵轴(概率值)上均匀地取点,然后通过 FXF_X 的曲线映射到横轴(随机变量取值)上。由于 FXF_X 在概率密度高的区域增长更快(更陡峭),因此均匀的纵轴区间会映射到更宽的横轴区间上,从而自然地实现了在概率密度函数高的区域生成更多样本点的效果。

常见分布的逆变换采样

指数分布

指数分布的累积分布函数为 F(x)=1eλxF(x) = 1 - e^{-\lambda x},其中 x0x \geq 0λ>0\lambda > 0速率参数。其逆函数为:

F1(u)=1λln(1u)F^{-1}(u) = -\frac{1}{\lambda} \ln(1 - u)

由于 UU(0,1)U \sim U(0,1) 时,1UU(0,1)1-U \sim U(0,1),因此可以简化为:

X=1λlnUX = -\frac{1}{\lambda} \ln U

其中 UU(0,1)U \sim U(0,1)

柯西分布

柯西分布的累积分布函数为 F(x)=1πarctan(x)+12F(x) = \frac{1}{\pi} \arctan(x) + \frac{1}{2}。其逆函数为:

F1(u)=tan(π(u12))F^{-1}(u) = \tan\left(\pi\left(u - \frac{1}{2}\right)\right)

因此,如果 UU(0,1)U \sim U(0,1),则 X=tan(π(U12))X = \tan(\pi(U - \frac{1}{2})) 服从标准柯西分布。

韦伯分布

韦伯分布的累积分布函数为 F(x)=1e(x/λ)kF(x) = 1 - e^{-(x/\lambda)^k},其逆函数为:

F1(u)=λ(ln(1u))1/kF^{-1}(u) = \lambda (-\ln(1-u))^{1/k}

优势与局限性

优势:

  • 通用性: 只要累积分布函数的逆函数存在且可以计算,该方法就适用。
  • 原理直观: 算法的理论基础扎实,易于理解和实现。
  • 精度高: 直接基于分布函数的逆变换,不涉及近似或拒绝采样中的效率损失。
  • 方差缩减:蒙特卡洛方法中,逆变换采样可以自然地与对偶变量法方差缩减技术结合使用。

局限性:

  • 逆函数可能不存在解析形式: 许多常见分布的累积分布函数没有简单的闭式逆函数。例如,正态分布的累积分布函数 Φ(x)\Phi(x) 的逆函数 Φ1(u)\Phi^{-1}(u) 无法用初等函数表示,必须通过数值近似方法(如 Box-Muller 变换或 Wichura 算法)来计算。
  • 计算成本较高: 对于逆函数计算复杂的分布,每次生成一个随机数都需要进行昂贵的数值运算,效率可能低于拒绝采样Ziggurat算法等专门方法。
  • 仅适用于一元分布: 该方法本质上是一维的。对于多元分布的采样,需要借助其他技术,如条件分布法吉布斯采样蒙特卡洛马尔可夫链等。

离散分布情形

逆变换采样同样适用于离散随机变量。对于取值 {x1,x2,}\{x_1, x_2, \dots\}概率质量函数pip_i 的离散分布,算法调整为:

  1. 生成 uU(0,1)u \sim U(0,1)
  2. 找到最小的 kk,使得 i=1kpiu\sum_{i=1}^{k} p_i \geq u
  3. 输出 xkx_k

这种方法在分类分布的采样中非常常见,其查找过程通常通过二分查找来优化,时间复杂度为 O(logn)O(\log n)

应用场景

逆变换采样在统计模拟蒙特卡洛方法计算统计学中有着广泛的应用:

总结

逆变换采样是随机数生成的基石方法,它巧妙地利用均匀随机数和累积分布函数的逆变换,实现了从任意已知分布中高效生成随机样本的目标。尽管在逆函数无解析形式时需借助数值方法,但该方法的通用性和理论的优美性使其在计算统计学科学计算中占据着不可替代的地位。