# Inverse of cumulative density function for Multivariate Normal Distribution

How do I calculate the inverse of the cumulative distribution function (CDF) of a multivariate normal distribution? Does it even exist for the multivariate case?

I know this is possible for a univariate case in python as

from scipy.stats import norm
norm.ppf(0.95, loc=10, scale=2) # mean=10,variance=2, probability=0.95

Out[34]: 0.94999999999999996  # x value corresponding to given probability


Can somebody tell me a function similar to this for a multivariate case in Python or R?

Sample Input : mean is a dimensional vector variance is p*p matrix probability(between 0 &1) Expected output : 'x' which would be a p dimensional vector

It doesn't exist. Consider the most simple case, $$X$$ and $$Y$$ are i.i.d. Gaussians. Because of independence, by definition $$f_{XY}(X,Y) = f_X(X)\,f_Y(Y)$$. If they are i.i.d., then
$$f_{XY}(z, -z) = f_{XY}(-z, z) = f_X(-z) \, f_Y(z) = f_X(z) \, f_Y(-z)$$
To obtain a cumulative distribution function $$F_{XY}$$, you would integrate over the probability density function $$f_{XY}$$. In such case, inevitably, you would observe that $$F_{XY}(z, -z) = F_{XY}(-z, z)$$. So multiple inputs could lead to the same outputs, so there is no inverse for it.
• Another point worth signaling is that a multivariate cdf at a random value, $F_X(X)$, is no longer distributed as a Uniform $\mathcal U(0,1)$ variable. Jun 13 at 7:45