逆变换采样 - CDF 不可逆

机器算法验证 分位数 累积分布函数
2022-03-16 22:57:05

假设累积分布函数给定但不可逆,以使用逆变换采样技术(计算)。我们还有其他替代方法吗?我很高兴知道所有可能方法的名称......FX=F1(Y)

3个回答

逆 cdf 方法即使在 cdf 不可逆时也可以使用,使用广义逆 始终定义为

(1)F(u)=sup{x; F(x)u}
u(0,1)

当方程没有解时,这意味着在小于和大于之间存在跳跃。因此分布在点处具有质量为的点质量,其中 In这种情况(1)导致x

F(x)=u
Fuuϵuu+ηη+ϵx0
F(x0)=uϵandF(x0)=u+η
F(u)=x0

类似地,如果方程有无限个解,比如,这意味着 cdf 在这个区间内是恒定的,因此 (a,b) 中的所有值都有发生的概率为零。在那种情况下, [这当然是一个约定,因为事件发生的概率为零。

F(x)=u
x[a,b)
F(u)=b
U=F(a)

在低维中,一个很好的选择是使用来自 pdf的拒绝采样(在高维中,这变得非常低效)。fX

假设是某个随机变量的 pdf ,您希望在区间内对其进行采样。然后你可以中均匀地接受/拒绝它们,即你抽取另一个均匀分布的随机数如果u_i \lt f_X(x_i)你接受那个样本点,否则你拒绝它。fXXI=[xmin,xmax]xiIfX(xi)ui[0,max(fX(x)|xI)]ui<fX(xi)

根据您要模拟的分布,方法可能会有很大不同。网上有很多关于模拟方法的好书和很多关于模拟的信息。方法通常利用分布之间的关系(例如泊松、指数、伽马、卡方、F、贝塔——参见评论中的讨论)。最终,几乎所有当前的计算机模拟最终都使用来自伪随机发生器的标准统一输出。

有时,方法取决于当前的技术状态。例如,普通 CDF 是众多不能以封闭形式表示的 CDF 之一。

  • 在 1950 年代模拟正态变量的第一种方法是使用 由 CLT 计算,其中Z=i=112Ui6aprxNorm(0,1),UiiidUnif(0,1).
  • 随后,使用Box-Muller 方法获得两个独立的标准正态随机变量,从 到独立的标准均匀随机变量。
  • 目前,通常使用标准正态分位数函数的非常精确的有理逼近来获得一个标准正态偏差和一个标准均匀偏差。我相信runifR 中的函数使用 Michael Wichura 的有理逼近,它是精确的双精度计算机表示。