【问题标题】:Is there a python function similar to np.random.multivariate_normal that generates NON-NORMAL distribution?是否有类似于 np.random.multivariate_normal 的 python 函数生成 NON-NORMAL 分布?
【发布时间】:2019-10-21 16:11:55
【问题描述】:

Python 函数 np.random.multivariate_normal(mean, cov, n) 生成具有给定协方差和均值的 NORMAL 随机序列。 我想生成具有给定协方差和均值的随机序列,但不是正常的。 PYTHON中有这样的功能吗?

就我而言,我有 10 次股票回报的时间序列。这些回报不是正态分布的。 我想为每只股票模拟 5000 次回报,以使它们具有与我的原始股票回报相同的均值和协方差。 我不希望那些模拟收益是正态分布的,而是具有类似于原始股票的分布。

【问题讨论】:

  • 你将不得不缩小这个范围,因为有无数个不正常的分布。
  • 请原谅我的直言不讳,但这就像说“我想知道如何照顾和喂养不是松鼠的动物”一样愚蠢。对于这样一个开放式问题,您如何期望任何人给您一个有意义的答案?照顾和喂养的概念可能非常清楚,但具体情况可能会因这种未指明的动物实际上是什么而变化到极端。
  • 我原谅你的直率。但问题是正确的。我想解决一个未知的分布。我认为答案在于 GMM。
  • 请浏览Non-Uniform Random Variate Generation Luc Devroye 教科书的索引。这是近 800 页非常密集的材料,因为生成 RV 的正确方法完全取决于分布。回到小动物的类比,鲨鱼和沙鼠都不是松鼠,但对鲨鱼的适当照顾和喂养与沙鼠完全不同。由于您提供的唯一信息是您的分布不正常,因此这里的任何人都无法提供有意义的答案。

标签: python simulation


【解决方案1】:

您可以通过将均匀分布映射到您的分布的逆 CDF 函数(编辑:如果它具有封闭形式的 CDF,如下面提到的 @pjs)来达到您想要的随机分布。

这是一个很好的 SO resource。 这是一个good explanation 怎么做

【讨论】:

  • 不,你不能。并非所有发行版都具有封闭形式的 CDF。这就是为什么有各种非逆向方法来生成 RV,例如卷积、合成、接受/拒绝以及一大堆特殊情况的技巧。请参阅Devroye 了解更多详细信息。
  • 已修复 - 删除了“任何”字
  • 除非你知道 Rick 想要什么特定的分布,并且知道它有一个封闭形式的 CDF,它是一个可逆函数,否则它仍然不是一个真实的陈述。
  • 分布没有任何特定的形式。它是股票收益的分布,可以是任何东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多