mvTqmc function

Truncated multivariate student cumulative distribution (QMC version)

Truncated multivariate student cumulative distribution (QMC version)

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

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

Arguments

  • l: lower bound for truncation (infinite values allowed)
  • u: upper bound for truncation
  • Sig: covariance matrix
  • df: degrees of freedom
  • n: sample size

Returns

a list with components

  • prob:estimated value of probability Pr(l\<X\<u)(l\<X\<u)
  • relErr:estimated relative error of estimator
  • upbnd:theoretical upper bound on true Pr(l\<X\<u)(l\<X\<u)

Details

This version uses a Quasi Monte Carlo (QMC) pointset of size ceiling(n/12) and estimates the relative error using 12 independent randomized QMC estimators; QMC is slower than ordinary Monte Carlo (see mvTcdf), but is also likely to be more accurate when d<50d<50.

Note

If you want to estimate Pr(l<Y<u)(l<Y<u), where YY follows a Student distribution with df degrees of freedom, location vector m and scale matrix Sig, then use mvTqmc(Sig, l - m, u - m, nu, n).

Examples

d <- 25; nu <- 30; l <- rep(1, d) * 5; u <- rep(Inf, d); Sig <- 0.5 * matrix(1, d, d) + 0.5 * diag(d); est <- mvTqmc(l, u, Sig, nu, n = 1e4) ## Not run: 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] mvTqmc(rep(-1, d), u = rep(Inf, d), Sig = Sig, df = 10, n=1e4)$prob ## End(Not run)

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

mvTcdf, mvrandt, mvNqmc, mvrandn

Author(s)

Matlab code by Zdravko I. Botev, R port by Leo Belzile

  • Maintainer: Leo Belzile
  • License: GPL-3
  • Last published: 2024-07-08

Useful links