mvncdf
Multivariate normal cumulative distribution function (CDF).
p = mvncdf (x)
returns the cumulative probability of the
multivariate normal distribution evaluated at each row of x with zero
mean and an identity covariance matrix. The rows of matrix x
correspond to observations and its columns to variables. The return argument
p is a column vector with the same number of rows as in x.
p = mvncdf (x, mu, sigma)
returns cumulative
probability of the multivariate normal distribution evaluated at each row of
x with mean mu and a covariance matrix sigma. mu can
be either a scalar (the same of every variable) or a row vector with the same
number of elements as the number of variables in x. sigma
covariance matrix may be specified a row vector if it only contains variances
along its diagonal and zero covariances of the diagonal. In such a case, the
diagonal vector sigma must have the same number of elements as the
number of variables (columns) in x. If you only want to specify sigma,
you can pass an empty matrix for mu.
The multivariate normal cumulative probability at x is defined as the probability that a random vector , distributed as multivariate normal, will fall within the semi-infinite rectangle with upper limits defined by x.
p = mvncdf (x_lo, x_hi, mu, sigma)
returns the multivariate normal cumulative probability evaluated over the
rectangle (hyper-rectangle for multivariate data in x) with lower and
upper limits defined by x_lo and x_hi, respectively.
[p, err] = mvncdf (…)
also returns an error estimate
err in p.
p = mvncdf (…, options)
specifies the structure,
which controls specific parameters for the numerical integration used to
compute p. The required fieds are:
"TolFun" | Maximum absolute error tolerance. Default is 1e-8 for D < 4, or 1e-4 for D >= 4. Note that for bivariate normal cdf, the Octave implementation has a presicion of more than 1e-10. | |
"MaxFunEvals" | Maximum number of integrand evaluations. Default is 1e7 for D > 4. | |
"Display" | Display options. Choices are "off"
(default), "iter" , which shows the probability and estimated error at
each repetition, and "final" , which shows the final probability and
related error after the integrand has converged successfully. |
See also: bvncdf, mvnpdf, mvnrnd
Source Code: mvncdf
mu = [1, -1]; Sigma = [0.9, 0.4; 0.4, 0.3]; [X1, X2] = meshgrid (linspace (-1, 3, 25)', linspace (-3, 1, 25)'); X = [X1(:), X2(:)]; p = mvncdf (X, mu, Sigma); Z = reshape (p, 25, 25); surf (X1, X2, Z); title ("Bivariate Normal Distribution"); ylabel "X1" xlabel "X2" |
mu = [0, 0]; Sigma = [0.25, 0.3; 0.3, 1]; p = mvncdf ([0 0], [1 1], mu, Sigma); x1 = -3:.2:3; x2 = -3:.2:3; [X1, X2] = meshgrid (x1, x2); X = [X1(:), X2(:)]; p = mvnpdf (X, mu, Sigma); p = reshape (p, length (x2), length (x1)); contour (x1, x2, p, [0.0001, 0.001, 0.01, 0.05, 0.15, 0.25, 0.35]); xlabel ("x"); ylabel ("p"); title ("Probability over Rectangular Region"); line ([0, 0, 1, 1, 0], [1, 0, 0, 1, 1], "Linestyle", "--", "Color", "k"); |