Learn R Programming

LaplacesDemon (version 16.1.1)

dist.Multivariate.Power.Exponential.Cholesky: Multivariate Power Exponential Distribution: Cholesky Parameterization

Description

These functions provide the density and random number generation for the multivariate power exponential distribution, given the Cholesky parameterization.

Usage

dmvpec(x=c(0,0), mu=c(0,0), U, kappa=1, log=FALSE)
rmvpec(n, mu=c(0,0), U, kappa=1)

Arguments

x

This is data or parameters in the form of a vector of length \(k\) or a matrix with \(k\) columns.

n

This is the number of random draws.

mu

This is mean vector \(\mu\) with length \(k\) or matrix with \(k\) columns.

U

This is the \(k \times k\) upper-triangular matrix that is Cholesky factor \(\textbf{U}\) of covariance matrix \(\Sigma\).

kappa

This is the kurtosis parameter, \(\kappa\), and must be positive.

log

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

Value

dmvpec gives the density and rmvpec generates random deviates.

Details

  • Application: Continuous Multivariate

  • Density: $$p(\theta) = \frac{k\Gamma(k/2)}{\pi^{k/2} \sqrt{|\Sigma|} \Gamma(1 + k/(2\kappa)) 2^{1 + k/(2\kappa)}} \exp(-\frac{1}{2}(\theta-\mu)^T \Sigma (\theta-\mu))^{\kappa}$$

  • Inventor: Gomez, Gomez-Villegas, and Marin (1998)

  • Notation 1: \(\theta \sim \mathcal{MPE}(\mu, \Sigma, \kappa)\)

  • Notation 2: \(\theta \sim \mathcal{PE}_k(\mu, \Sigma, \kappa)\)

  • Notation 3: \(p(\theta) = \mathcal{MPE}(\theta | \mu, \Sigma, \kappa)\)

  • Notation 4: \(p(\theta) = \mathcal{PE}_k(\theta | \mu, \Sigma, \kappa)\)

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

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

  • Parameter 3: kurtosis parameter \(\kappa\)

  • Mean: \(E(\theta) = \)

  • Variance: \(var(\theta) =\)

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

The multivariate power exponential distribution, or multivariate exponential power distribution, is a multidimensional extension of the one-dimensional or univariate power exponential distribution. Gomez-Villegas (1998) and Sanchez-Manzano et al. (2002) proposed multivariate and matrix generalizations of the PE family of distributions and studied their properties in relation to multivariate Elliptically Contoured (EC) distributions.

The multivariate power exponential distribution includes the multivariate normal distribution (\(\kappa = 1\)) and multivariate Laplace distribution (\(\kappa = 0.5\)) as special cases, depending on the kurtosis or \(\kappa\) parameter. A multivariate uniform occurs as \(\kappa \rightarrow \infty\).

If the goal is to use a multivariate Laplace distribution, the dmvlc function will perform faster and more accurately.

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 dmvpe, dmvpec must additionally matrix-multiply the Cholesky back to the covariance matrix, but it does not have to check for or correct the covariance matrix to positive-definiteness, which overall is slower. Compared with rmvpe, rmvpec is faster because the Cholesky decomposition has already been performed.

The rmvpec function is a modified form of the rmvpowerexp function in the MNM package.

References

Gomez, E., Gomez-Villegas, M.A., and Marin, J.M. (1998). "A Multivariate Generalization of the Power Exponential Family of Distributions". Communications in Statistics-Theory and Methods, 27(3), p. 589--600.

Sanchez-Manzano, E.G., Gomez-Villegas, M.A., and Marn-Diazaraque, J.M. (2002). "A Matrix Variate Generalization of the Power Exponential Family of Distributions". Communications in Statistics, Part A - Theory and Methods [Split from: J(CommStat)], 31(12), p. 2167--2182.

See Also

chol, dlaplace, dmvlc, dmvnc, dmvnpc, dnorm, dnormp, dnormv, and dpe.

Examples

Run this code
# NOT RUN {
library(LaplacesDemon)
n <- 100
k <- 3
x <- matrix(runif(n*k),n,k)
mu <- matrix(runif(n*k),n,k)
Sigma <- diag(k)
U <- chol(Sigma)
dmvpec(x, mu, U, kappa=1)
X <- rmvpec(n, mu, U, kappa=1)
joint.density.plot(X[,1], X[,2], color=TRUE)
# }

Run the code above in your browser using DataLab