样本随机变量来自正态逆高斯(NIG)分布



如何从正态逆高斯(NIG(分布中采样随机变量?

我需要从NIG分布中生成100个数字。

我使用boost::math::inverse_gaussian,但它没有像std::normal_distribution 那样的运算符((成员函数

编辑:Hörmann,W.,Leydold一直在对这个主题进行一些研究:

  1. 论文Hörmann,W.,Leydold,J.生成广义逆高斯随机变量。Stat Comput 24547–557(2014(。https://doi.org/10.1007/s11222-013-9387-3[https://doi.org/10.1007/s11222-013-9387-3][3]
  2. 幻灯片UNU.RAN
  3. C通用非均匀随机数生成器的一种实现

我在BoostRandom.中找不到逆高斯分布

可以使用所谓的逆变换采样技术。也就是说,取逆高斯分布的逆cdf(即分位数函数(,并将其应用于(0,1(中的一致随机数样本。

类似的东西:

boost::math::inverse_gaussian my_ig(2, 3);
double inverseCDFig(double p){
return boost::math::quantile(my_ig, p);
}

然后使用std::uniform_real_distribution生成0和1之间的一致随机数,比如i = 0; i < Nu[i],然后为每个i计算inverseCDFig(u[i])。通过这种方式,您可以从反高斯分布中获得随机样本。

相关内容

  • 没有找到相关文章

最新更新