pmvtnormt function

Multivariate normal and Student-t probabilities

Multivariate normal and Student-t probabilities

Computation of Multivariate normal and Student-t probabilities using the classic Genz method form packages mvtnorm and tlrmvnmvt packages. In order to save computational effort, it chooses whether to use the function pmvtnorm (pmvt) from mvtnorm, or functions pmvn (pmvt) from the tlrmvnmvt package, depending of the vector size p, real or integer degrees of freedom nu.

pmvnormt(lower = rep(-Inf,ncol(sigma)),upper = rep(Inf,ncol(sigma)), mean = rep(0,ncol(sigma)),sigma,nu = NULL,uselog2 = FALSE)

Arguments

  • lower: lower integration limits, a numeric vector of length p
  • upper: upper integration limits, a numeric vector of length p
  • mean: the location parameter, a numeric vector of length p
  • sigma: the scale matrix, a square matrix that matches the length of lower
  • nu: degrees of freedom, a positive real number. If NULL, normal case is considered
  • uselog2: a boolean variable, indicating if the log2 result should be returned. This is useful when the true probability is too small for the machine precision

Returns

The estimated probability or its log2 if uselog2 == TRUE

References

Genz, A. (1992), "Numerical computation of multivariate normal probabilities," Journal of Computational and Graphical Statistics, 1, 141-149.

Cao, J., Genton, M. G., Keyes, D. E., & Turkiyyah, G. M. "Exploiting Low Rank Covariance Structures for Computing High-Dimensional Normal and Student- t Probabilities" (2019) https://marcgenton.github.io/2019.CGKT.manuscript.pdf

Author(s)

Christian E. Galarza <cgalarza88@gmail.com > and Victor H. Lachos <hlachos@uconn.edu >

Maintainer: Christian E. Galarza <cgalarza88@gmail.com >

Note

If is.null(nu), normal case is considered.

See Also

onlymeanTMD,meanvarTMD,momentsFMD,momentsTMD,meanvarFMD,dmvSN,pmvSN,rmvSN, dmvESN,pmvESN,rmvESN, dmvST,pmvST,rmvST, dmvEST,pmvEST,rmvEST

Examples

a = c(-0.8,-0.7,-0.6) b = c(0.5,0.6,0.7) mu = c(0.1,0.2,0.3) Sigma = matrix(data = c(1,0.2,0.3,0.2,1,0.4,0.3,0.4,1), nrow = length(mu),ncol = length(mu),byrow = TRUE) pmvnormt(lower = a,upper = b,mean = mu,sigma = Sigma) #normal case pmvnormt(lower = a,upper = b,mean = mu,sigma = Sigma,nu = 4.23) #t case pmvnormt(lower = a,upper = b,mean = mu,sigma = Sigma,nu = 4.23,uselog2 = TRUE)
  • Maintainer: Christian E. Galarza
  • License: GPL (>= 2)
  • Last published: 2024-10-28

Useful links