Learn R Programming

LaplacesDemon (version 16.1.1)

dist.Multivariate.t.Cholesky: Multivariate t Distribution: Cholesky Parameterization

Description

These functions provide the density and random number generation for the multivariate t distribution, otherwise called the multivariate Student distribution, given the Cholesky parameterization.

Usage

dmvtc(x, mu, U, df=Inf, log=FALSE)
rmvtc(n=1, mu, U, df=Inf)

Arguments

x

This is either a vector of length \(k\) or a matrix with a number of columns, \(k\), equal to the number of columns in scale matrix \(\textbf{S}\).

n

This is the number of random draws.

mu

This is a numeric vector or matrix representing the location parameter,\(\mu\) (the mean vector), of the multivariate distribution (equal to the expected value when df > 1, otherwise represented as \(\nu > 1\)). When a vector, it must be of length \(k\), or must have \(k\) columns as a matrix, as defined above.

U

This is the \(k \times k\) upper-triangular matrix that is Cholesky factor \(\textbf{U}\) of scale matrix \(\textbf{S}\), such that S*df/(df-2) is the variance-covariance matrix when df > 2.

df

This is the degrees of freedom, and is often represented with \(\nu\).

log

Logical. If log=TRUE, then the logarithm of the density is returned.

Value

dmvtc gives the density and rmvtc generates random deviates.

Details

  • Application: Continuous Multivariate

  • Density: $$p(\theta) = \frac{\Gamma[(\nu+k)/2]}{\Gamma(\nu/2)\nu^{k/2}\pi^{k/2}|\Sigma|^{1/2}[1 + (1/\nu)(\theta-\mu)^{\mathrm{T}} \Sigma^{-1} (\theta-\mu)]^{(\nu+k)/2}}$$

  • Inventor: Unknown (to me, anyway)

  • Notation 1: \(\theta \sim \mathrm{t}_k(\mu, \Sigma, \nu)\)

  • Notation 2: \(p(\theta) = \mathrm{t}_k(\theta | \mu, \Sigma, \nu)\)

  • Parameter 1: location vector \(\mu\)

  • Parameter 2: positive-definite \(k \times k\) scale matrix \(\Sigma\)

  • Parameter 3: degrees of freedom \(\nu > 0\) (df in the functions)

  • Mean: \(E(\theta) = \mu\), for \(\nu > 1\), otherwise undefined

  • Variance: \(var(\theta) = \frac{\nu}{\nu - 2} \Sigma\), for \(\nu > 2\)

  • Mode: \(mode(\theta) = \mu\)

The multivariate t distribution, also called the multivariate Student or multivariate Student t distribution, is a multidimensional extension of the one-dimensional or univariate Student t distribution. A random vector is considered to be multivariate t-distributed if every linear combination of its components has a univariate Student t-distribution. This distribution has a mean parameter vector \(\mu\) of length \(k\), and an upper-triangular \(k \times k\) matrix that is Cholesky factor \(\textbf{U}\), as per the chol function for Cholesky decomposition. When degrees of freedom \(\nu=1\), this is the multivariate Cauchy distribution.

In practice, \(\textbf{U}\) is fully unconstrained for proposals when its diagonal is log-transformed. The diagonal is exponentiated after a proposal and before other calculations. Overall, the Cholesky parameterization is faster than the traditional parameterization. Compared with dmvt, dmvtc must additionally matrix-multiply the Cholesky back to the scale matrix, but it does not have to check for or correct the scale matrix to positive-definiteness, which overall is slower. The same is true when comparing rmvt and rmvtc.

See Also

chol, dinvwishartc, dmvc, dmvcp, dmvtp, dst, dstp, and dt.

Examples

Run this code
# NOT RUN {
library(LaplacesDemon)
x <- seq(-2,4,length=21)
y <- 2*x+10
z <- x+cos(y) 
mu <- c(1,12,2)
S <- matrix(c(1,2,0,2,5,0.5,0,0.5,3), 3, 3)
U <- chol(S)
df <- 4
f <- dmvtc(cbind(x,y,z), mu, U, df)
X <- rmvtc(1000, c(0,1,2), U, 5)
joint.density.plot(X[,1], X[,2], color=TRUE)
# }

Run the code above in your browser using DataLab