Learn R Programming

TruncatedNormal (version 2.3)

mvTcdf: Truncated multivariate student cumulative distribution

Description

Computes an estimator of the probability Pr\((l<X<u)\), where \(X\) is a centered multivariate student vector with scale matrix Sig and degrees of freedom df. Infinite values for vectors u and l are accepted.

Usage

mvTcdf(l, u, Sig, df, n = 1e+05)

Value

a list with components

  • prob: estimated value of probability Pr\((l<X<u)\)

  • relErr: estimated relative error of estimator

  • upbnd: theoretical upper bound on true Pr\((l<X<u)\)

Arguments

l

lower bound for truncation (infinite values allowed)

u

upper bound for truncation

Sig

covariance matrix

df

degrees of freedom

n

sample size

Author

Matlab code by Zdravko Botev, R port by Leo Belzile

Details

Monte Carlo method uses sample size n; the larger the n, the smaller the relative error of the estimator;

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

Z. I. Botev and P. L'Ecuyer (2015), Efficient probability estimation and simulation of the truncated multivariate Student-t distribution, Proceedings of the 2015 Winter Simulation Conference, pp. 380-391

See Also

mvTqmc, mvrandt, mvNqmc, mvrandn

Examples

Run this code
 d <- 15; nu <- 30;
 l <- rep(2, d); u <- rep(Inf, d);
 Sig <- 0.5 * matrix(1, d, d) + 0.5 * diag(1, d);
 est <- mvTcdf(l, u, Sig, nu, n = 1e4)
 # mvtnorm::pmvt(lower = l, upper = u, df = nu, sigma = Sig)
if (FALSE) {
d <- 5
Sig <- solve(0.5*diag(d)+matrix(0.5, d,d))
# mvtnorm::pmvt(lower = rep(-1,d), upper = rep(Inf, d), df = 10, sigma = Sig)[1]
mvTcdf(rep(-1, d), u = rep(Inf, d), Sig = Sig, df = 10, n=1e4)$prob
}

Run the code above in your browser using DataLab