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)