| pmvnormt {MomTrunc} | R 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 |
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)