Python中随机数的长尾分布

时间:2016-08-18 18:04:42

标签: python random distribution

我需要在Python中创建一个使用长尾分布返回值的随机函数。不幸的是,我的数学技能远不及我的编程技能,所以我被困住了。

这是我正在寻找的那种发行版: http://www.danvk.org/wp/wp-content/uploads/2007/02/scores.png

返回值必须介于0和1之间,并且必须可以指定峰值(图表在Y轴上达到峰值),这将是介于0和1之间的数字。

使用示例:

def random_long_tail(peak):
    #magic

value = random_long_tail(0.2)
print(value) #outputs i.e. 0.345811242

对于解决这个问题的任何帮助,我将非常感激。谢谢!

2 个答案:

答案 0 :(得分:2)

有很多具有单峰值的分布和一些尾部,log-normalGammaChi2等等。

通常,人们可以选择numpy随机模块,看看哪些是有用的,以及它们如何适合您的问题。链接:http://docs.scipy.org/doc/numpy-1.10.1/reference/routines.random.html

答案 1 :(得分:1)

您可以查看Numpy的random sampling选项。查看common heavy-tailed distributions列表中包含的内容。

log-normal就是一个很好的例子。 Numpy允许您指定平均值和标准差。你必须做一些代数来“分配一个峰值”。这个峰值称为“模式”。