This function computes the distribution function of a multivariate normal distribution vector for an arbitrary rectangular region [lb, ub]. pmvnorm computes an estimate and the value is returned along with a relative error and a deterministic upper bound of the distribution function of the multivariate normal distribution. Infinite values for vectors \(u\) and \(l\) are accepted. The Monte Carlo method uses sample size \(n\): the larger the sample size, the smaller the relative error of the estimator.

pmvnorm(
  mu,
  sigma,
  lb = -Inf,
  ub = Inf,
  B = 10000,
  type = c("mc", "qmc"),
  log = FALSE
)

Arguments

mu

vector of location parameters

sigma

covariance matrix

lb

vector of lower truncation limits

ub

vector of upper truncation limits

B

number of replications for the (quasi)-Monte Carlo scheme

type

string, either of mc or qmc for Monte Carlo and quasi Monte Carlo, respectively

log

logical; if TRUE, probabilities and density are given on the log scale.

References

Z. I. Botev (2017), The normal law under linear restrictions: simulation and estimation via minimax tilting, Journal of the Royal Statistical Society, Series B, 79 (1), pp. 1--24.

See also

Examples

#From mvtnorm mean <- rep(0, 5) lower <- rep(-1, 5) upper <- rep(3, 5) corr <- matrix(0.5, 5, 5) + diag(0.5, 5) prob <- pmvnorm(lb = lower, ub = upper, mu = mean, sigma = corr) stopifnot(pmvnorm(lb = -Inf, ub = 3, mu = 0, sigma = 1) == pnorm(3))