如何从具有巨大协方差矩阵的多元正态分布生成随机变量

时间:2021-03-29 19:02:40

标签: julia normal-distribution

我想从 Julia 中均值为 0 和巨大协方差矩阵 C 的多元正态分布中生成一个随机变量。协方差矩阵 C 的大小为 100000*100000。更重要的是,协方差矩阵是半正定的。我使用了 SVD 分解(参考:https://stats.stackexchange.com/questions/63817/generate-normally-distributed-random-numbers-with-non-positive-definite-covarian)。即使我有足够的内存,由于协方差矩阵C的巨大规模,SVD分解无法实现。 我在高性能计算机上运行了一整夜,然后程序被杀了(我有1800GB内存,而我只有当我的程序被杀死时使用了 400 GB)。我只是想知道还有其他方法可以在 Julia 中有效地做到这一点吗?

代码如下。由于C的巨大尺寸,SVD分解失败。

using LinearAlgebra
C_svd = svd(Symmetric(C))
Y =  C_svd.U *Diagonal(sqrt.(C_svd.S)) * randn(100000)

0 个答案:

没有答案
相关问题