从 Fortran 中的第二类广义 Beta 中采样

计算科学 正则 随机数生成
2021-12-10 05:50:40

我需要从第二类 (GB2) 分布(McDonald, 1984, Econometrica)的广义 beta 中抽样。其PDF格式为

fa,b,p,q(x)=|a|xap1bapB(p,q)(1+(x/b)a)p+q.
它的 CDF 没有封闭形式,所以我不能使用逆变换方法。有谁知道如何从此分布中采样或知道包含此分布的 Fortran 随机数生成器库?

netlib.org/random 库中的软件包都不包含 GB2。

1个回答

如果您对固定值的分布感兴趣a,b,p,q,您可以通过求积计算累积分布并将其制成表格。由于它只是固定参数的一维函数,因此您可以计算固定值的累积函数x以相当高的精度,通过多项式近似连接这些点,然后使用此代理函数进行采样。