稳定的分布随机数?

Way*_*yne 4 c# random distribution

如何在C#中生成具有稳定分布的随机数?Random类具有均匀分布.互联网上的许多其他代码显示正常分布.但我们需要稳定的分布意味着无限的方差,也就是胖尾分布.

原因是产生实际的股票价格.在现实世界中,价格的巨大变化远比正常分布更可能.

有人知道将随机类输出转换为稳定分布的C#代码吗?

编辑:嗯.精确分布不如确保它会随机产生至少20西格玛的巨大西格玛.我们希望在真正的胖尾分布中测试弹性的交易策略,这正是股票市场价格的行为方式.

我刚刚读到有关ZipFian和Cauchy的评论.因为我必须选择,让我们选择柯西分布,但我也会尝试使用ZipFian进行比较.

Eri*_*ert 6

一般来说,方法是:

  • 选择稳定的肥尾分布.说,Cauchy分布.

  • 查找所选分布的分位数函数.

对于Cauchy分布,那就是p --> peak + scale * tan( pi * (p - 0.5) ).

  • 现在你有了一种将均匀分布的随机数转换成Cauchy分布随机数的方法.

合理?看到

http://en.wikipedia.org/wiki/Inverse_transform_sampling

详情.

警告:自从我统计以来,已经很长很长时间了.

更新:

我非常喜欢这个问题,我只是写了一篇博文:看

http://ericlippert.com/2012/02/21/generating-random-non-uniform-data/

我的文章探讨了一些Zipfian发行版的有趣例子:

http://blogs.msdn.com/b/ericlippert/archive/2010/12/07/10100227.aspx