我可以轻松地沿高斯/正态概率分布生成随机数。
slice = random.gauss(50.0, 15.0)
但概率分布与我想要的相反:
但我想要的是逆概率。
而且我真的希望不仅捕获左侧的高概率,而且也捕获右侧的概率。
从字面上看,无论正态分布的结果是什么概率......我希望结果的实际概率相反。因此,如果它在正态分布上的概率为90%,我希望该结果在10%的时间内出现,等等。
答案 0 :(得分:1)
在您编辑问题的过程中,答案可以在scipy的文档中找到 - 请检查invgauss。具体地,
from scipy.stats import invgauss
r = invgauss.rvs(mu, size=1000)
将生成从以mu
(您的平均值)为中心的逆高斯分布绘制的1000个数字。绘制pdf
:
rv = invgauss(mu)
ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')
表示某个轴对象。为了获得更多控制权,您需要:
invgauss.pdf(x, mu, loc, scale)
其中scale
特别与STD有数学关系,但我不记得它。规范形式通常仅取决于平均值。