随机数在一个偏斜正态分布(相当于NORMINV())

我试图创build一个倾斜的随机数发生器使用偏斜正态分布,但我不知道如何把我的公式(它使用NORMDIST() )成为一个基于NORMINV()的公式,可以生成我想要的数字。 这是我的公式:

 =2/s * NORMDIST((xm)/s, 0, 1, 0) * NORMSDIST(k*(xm)/s) 

其中“x”是数字,“s”是比例,“m”是位置,“k”是形状。 我承认我在网上find了这个公式,但似乎只是做了我想做的事情,除了错误的方式。

我怎样才能做到这一点?

Adelchi Azzalini有一个关于如何生成偏斜正态(SN)分布的伪随机数字的页面 。 这里从页面:

SN随机数字

在步骤1中的N(0,1)variablesu0和v可以在Excel中被计算为NORMINV(RAND(),0,1) 。 用形状参数α表示的δ = α/SQRT(1+α*α)δ = α/SQRT(1+α*α)

注意:Python的SciPy正在获得一个偏斜正态随机variables( scipy.stats.skewnorm ),在SciPy 0.18.0rc2代码中可以看到。 文档参考了Azzalini和Capitanio的论文以及上面引用的同一页。