我正在尝试使用偏斜正态分布创建偏斜随机数生成器,但我不知道如何将我的公式(使用NORMDIST()
)转换为基于NORMINV()
的公式这可以生成我想要的数字。这是我的公式:
=2/s * NORMDIST((x-m)/s, 0, 1, 0) * NORMSDIST(k*(x-m)/s)
其中“x”是数字,“s”是比例,“m”是位置,“k”是形状。我承认我找到了公式online,但似乎做了我想做的事,除了错误的方法。
我该怎么做?
1 个答案:
答案 0 :(得分:2)
Adelchi Azzalini关于如何生成具有偏斜正态(SN)分布的伪随机数有一个page。在这里从页面:
步骤1中的N(0,1)变量u0和v可以在Excel中计算为NORMINV(RAND(),0,1)
。并且以形状参数α表示的δ是δ = α/SQRT(1+α*α)
。
注意:Python的SciPy正在获取偏斜正态随机变量(scipy.stats.skewnorm
),请参阅SciPy 0.18.0rc2代码中的here。 docs引用了Azzalini和Capitanio的论文以及我在上面引用的相同页面。