[ANN] MvNormalCDF.jl - multivariate normal CDF

MvNormalCDF.jl - Quasi-Monte-Carlo numerical computation of multivariate normal probabilities.

This function uses an algorithm given in the paper “Numerical Computation of Multivariate Normal Probabilities”, in J. of Computational and Graphical Stat., 1(1992), pp. 141-149, by Alan Genz, WSU Math, PO Box 643113, Pullman, WA 99164-3113 Email : alangenz@wsu.edu

The primary references for the numerical integration are “On a Number-Theoretical Integration Method” H. Niederreiter, Aequationes Mathematicae, 8(1972), pp. 304-11, and “Randomization of Number Theoretic Methods for Multiple Integration” R. Cranley and T.N.L. Patterson, SIAM J Numer Anal, 13(1976), pp. 904-14.

Re-coded in Julia from the MATLAB function qsimvnv(m,r,a,b) Alan Genz is the author the MATLAB qsimvnv() function.

Alan Genz software website: archive.md Source code to MATLAB qsimvnv() function: archive.md

Idea was taken from this PR to StatsFuns.jl.

Also see discourse discussion here.

Thanks to @blackeneth

10 Likes

Thanks @PharmCat for getting it out there. Looks really good.

1 Like

After searching a lot, I think this blog entry by Noah H. Silbert describes the only readymade code from a standard library that can be used for computing the cdf for a multivariate normal in Python. Scipy has a way to do it but as mentioned in the blog, it is difficult to find. The approach is based on a paper by Alan Genz’s.