我需要在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
对于解决这个问题的任何帮助,我将非常感激。谢谢!
答案 0 :(得分:2)
有很多具有单峰值的分布和一些尾部,log-normal,Gamma,Chi2等等。
通常,人们可以选择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允许您指定平均值和标准差。你必须做一些代数来“分配一个峰值”。这个峰值称为“模式”。