pmvtnormt: Multivariate normal and Student-t probabilities

pmvnormtR Documentation

Multivariate normal and Student-t probabilities

Description

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.

Usage

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 mean parameter, a numeric vector of length p

sigma

the covariance 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

Value

The estimated probability or its log2 if uselog2 == TRUE

Note

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

Author(s)

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

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

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>

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) 


MomTrunc documentation built on June 16, 2022, 1:06 a.m.