【问题标题】:Sampling Complexity of Multivariate Normal Distribution多元正态分布的抽样复杂度
【发布时间】:2012-12-15 18:42:06
【问题描述】:

从多元正态分布抽样的计算复杂度是多少?

协方差矩阵是否需要先求逆,产生O(n^3)算法 还是存在复杂度为 O(n^2) 的算法?

【问题讨论】:

  • 大概你想要生成许多具有给定协方差结构的随机向量,所以任何分解等只需要在开始时完成一次。还是我误解了你的问题?
  • 我打算使用 numpy.random.multivariate_normal 函数。所以,我确实需要很多样品,摊销成本很有趣。但是,如果我应该确保每次尽可能多地取样以摊销成本,我主要是在徘徊。在 O(n^2) 算法的情况下,我不必担心这方面。

标签: statistics complexity-theory sampling


【解决方案1】:

如果C是你的协方差矩阵,C=LLT是它的Cholesky分解,那么Lx将具有所需的协方差结构。这里,x 是标准正态变量的 n-向量。

Cholesky 分解需要 O(n^3) 时间来计算。但是,如果您提前完成,然后只使用 L,您将在计算的所有随机样本中摊销成本。

【讨论】:

  • 查看numpy的mtrand.pyx文件,可以看到他们使用的是复杂度O(n^3)的svd分解。其他操作只是矩阵乘法和复杂度 O(n^2) 的加法。因此,值得为每个函数调用进行大批量抽样以摊销成本。
猜你喜欢
  • 2021-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多