meanvarTMD {MomTrunc} | R Documentation |
Mean and variance for doubly truncated multivariate distributions
Description
It computes the mean vector and variance-covariance matrix for some doubly truncated skew-elliptical distributions. It supports the p
-variate Normal, Skew-normal (SN), Extended Skew-normal (ESN) and Unified Skew-normal (SUN) as well as the Student's-t, Skew-t (ST), Extended Skew-t (EST) and Unified Skew-t (SUT) distribution.
Usage
meanvarTMD(lower = rep(-Inf,length(mu)),upper = rep(Inf,length(mu)),mu,Sigma
,lambda = NULL,tau = NULL,Gamma = NULL,nu = NULL,dist)
Arguments
lower |
the vector of lower limits of length |
upper |
the vector of upper limits of length |
mu |
a numeric vector of length |
Sigma |
a numeric positive definite matrix with dimension |
lambda |
a numeric matrix of dimension |
tau |
a numeric vector of length |
Gamma |
a correlation matrix with dimension |
nu |
It represents the degrees of freedom for the Student's t-distribution being a positive real number. |
dist |
represents the truncated distribution to be used. The values are |
Details
Univariate case is also considered, where Sigma
will be the variance \sigma^2
. Normal case code is an R adaptation of the Matlab available function dtmvnmom.m
from Kan & Robotti (2017) and it is used for p<=3
. For higher dimensions we use an extension of the algorithm in Vaida (2009).
Value
It returns a list with three elements:
mean |
the mean vector of length |
EYY |
the second moment matrix of dimensions |
varcov |
the variance-covariance matrix of dimensions |
Warning
For the t
cases, the algorithm supports degrees of freedom nu <= 2
.
Note
If nu >= 300
, 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
Galarza, C. E., Lin, T. I., Wang, W. L., & Lachos, V. H. (2021). On moments of folded and truncated multivariate Student-t distributions based on recurrence relations. Metrika, 84(6), 825-850 <doi:10.1007/s00184-020-00802-1>.
Galarza, C. E., Matos, L. A., Dey, D. K., & Lachos, V. H. (2022a). "On moments of folded and doubly truncated multivariate extended skew-normal distributions." Journal of Computational and Graphical Statistics, 1-11 <doi:10.1080/10618600.2021.2000869>.
Galarza, C. E., Matos, L. A., Castro, L. M., & Lachos, V. H. (2022b). Moments of the doubly truncated selection elliptical distributions with emphasis on the unified multivariate skew-t distribution. Journal of Multivariate Analysis, 189, 104944 <doi:10.1016/j.jmva.2021.104944>.
See Also
MCmeanvarTMD
,
momentsTMD
, meanvarFMD
, meanvarFMD
,momentsFMD
, 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)
# Theoretical value
value1 = meanvarTMD(a,b,mu,Sigma,dist="normal")
#MC estimate
MC11 = MCmeanvarTMD(a,b,mu,Sigma,dist="normal") #by defalut n = 10000
MC12 = MCmeanvarTMD(a,b,mu,Sigma,dist="normal",n = 10^5) #more precision
# Now works for for any nu>0
value2 = meanvarTMD(a,b,mu,Sigma,dist = "t",nu = 0.87)
value3 = meanvarTMD(a,b,mu,Sigma,lambda = c(-2,0,1),dist = "SN")
value4 = meanvarTMD(a,b,mu,Sigma,lambda = c(-2,0,1),nu = 4,dist = "ST")
value5 = meanvarTMD(a,b,mu,Sigma,lambda = c(-2,0,1),tau = 1,dist = "ESN")
value6 = meanvarTMD(a,b,mu,Sigma,lambda = c(-2,0,1),tau = 1,nu = 4,dist = "EST")
#Skew-unified Normal (SUN) and Skew-unified t (SUT) distributions
Lambda = matrix(c(1,0,2,-3,0,-1),3,2) #A skewness matrix p times q
Gamma = matrix(c(1,-0.5,-0.5,1),2,2) #A correlation matrix q times q
tau = c(-1,2) #A vector of extension parameters of dim q
value7 = meanvarTMD(a,b,mu,Sigma,lambda = Lambda,tau = c(-1,2),Gamma = Gamma,dist = "SUN")
value8 = meanvarTMD(a,b,mu,Sigma,lambda = Lambda,tau = c(-1,2),Gamma = Gamma,nu = 4,dist = "SUT")
#The ESN and EST as particular cases of the SUN and SUT for q=1
Lambda = matrix(c(-2,0,1),3,1)
Gamma = 1
value9 = meanvarTMD(a,b,mu,Sigma,lambda = Lambda,tau = 1,Gamma = Gamma,dist = "SUN")
value10 = meanvarTMD(a,b,mu,Sigma,lambda = Lambda,tau = 1,Gamma = Gamma,nu = 4,dist = "SUT")
round(value5$varcov,2) == round(value9$varcov,2)
round(value6$varcov,2) == round(value10$varcov,2)