随机数在一个偏斜正态分布(相当于NORMINV())
我试图创build一个倾斜的随机数发生器使用偏斜正态分布,但我不知道如何把我的公式(它使用NORMDIST()
)成为一个基于NORMINV()
的公式,可以生成我想要的数字。 这是我的公式:
=2/s * NORMDIST((xm)/s, 0, 1, 0) * NORMSDIST(k*(xm)/s)
其中“x”是数字,“s”是比例,“m”是位置,“k”是形状。 我承认我在网上find了这个公式,但似乎只是做了我想做的事情,除了错误的方式。
我怎样才能做到这一点?
Adelchi Azzalini有一个关于如何生成偏斜正态(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的论文以及上面引用的同一页。