2

I am trying to compute the CDF of a Multivariate Cumulative Normal Distribution in the 1000th dimension (I have a 1000 vectors and their covariance matrix). I haven't been able to find a fast way to compute this, numpy and scipy all take take too long.

Are there any libraries (platform and language doesn't matter) that can compute this in a reasonable amount of time? If not, are there any numerical methods that can achieve this?

lee
  • 121
  • 1
  • What is "a reasonable amount of time"? Next, as a reference, you should post your benchmarks. – davidhigh Jun 02 '18 at 20:14
  • @davidhigh a "reasonable amount of time" is a few hours to a few days. Every standard implementation I've seen is exponential, and it looks like it's too esoteric for most libraries to implement better solutions. I can't print any benchmarks, with my estimation it will take decades to compute. I've never actually successfully ran it to completion. – lee Jun 02 '18 at 20:37
  • What do you expect as result? You can't store a 1000-dimensional function, that's clear. How are you going to use the sought CDF? – davidhigh Jun 02 '18 at 20:56
  • @davidhigh the result is a single real value. Not sure what you mean by 1000-dimensional function. The CDF in single dimension is a mapping from R -> R. The generalized function takes a vector of dimension N, where every linear combination of its components are normally distributed, and an NxN covariance matrix C, and produces the single CDF value. The multivariate normal distribution appears naturally, just like the normal distribution. There is a multivariate central limit theorem that you can use for joint probabilities. – lee Jun 02 '18 at 22:07

0 Answers0