将均匀分布转换为胖尾分布

时间:2018-12-29 19:25:04

标签: algorithm random statistics language-agnostic distribution

This previous SO question涉及将统一分布转换为正态分布。

对于蒙特卡洛模拟,不仅需要正态(高斯),还需要一些计算有效的方法,可以使用给定的"fat-tailed"heavy-tailed分布生成大量样本(64位或双精度)统一RNG作为输入。这些分布的示例包括:对数正态,帕累托,Student-T和柯西。

使用逆CDF是可以接受的,因为需要根据计算效率来计算逆CDF。

该标记用于与语言无关的算法,但是所需的实现用于基本过程编程语言(C,Basic,过程Swift,Python等)。

1 个答案:

答案 0 :(得分:0)

柯西随机数可以表示为:

scale * tan(pi * (RNDU01OneExc()-0.5)) + mu

RNDU01OneExc()是[0,1)中的随机数,muscale分别是偏移量和小数位数。

对数正态随机数可以表示为exp(Normal(mu, sigma)),其中Normal(mu, sigma)是具有均值mu和标准差sigma的正态分布随机数。

my article中提到了有关随机数生成和采样的这些分布和其他类型的分布。