Learn R Programming

LaplacesDemon (version 16.1.0)

dist.Matrix.Gamma: Matrix Gamma Distribution

Description

This function provides the density for the matrix gamma distribution.

Usage

dmatrixgamma(X, alpha, beta, Sigma, log=FALSE)

Arguments

X

This is a \(k \times k\) positive-definite precision matrix.

alpha

This is a scalar shape parameter (the degrees of freedom), \(\alpha\).

beta

This is a scalar, positive-only scale parameter, \(\beta\).

Sigma

This is a \(k \times k\) positive-definite scale matrix.

log

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

Value

dmatrixgamma gives the density.

Details

  • Application: Continuous Multivariate Matrix

  • Density: \(p(\theta) = \frac{|\Sigma|^{-\alpha}}{\beta^{k \alpha} \Gamma_k(\alpha)} |\theta|^{\alpha-(k+1)/2}\exp(tr(-\frac{1}{\beta}\Sigma^{-1}\theta))\)

  • Inventors: Unknown

  • Notation 1: \(\theta \sim \mathcal{MG}_k(\alpha, \beta, \Sigma)\)

  • Notation 2: \(p(\theta) = \mathcal{MG}_k(\theta | \alpha, \beta, \Sigma)\)

  • Parameter 1: shape \(\alpha > 2\)

  • Parameter 2: scale \(\beta > 0\)

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

  • Mean:

  • Variance:

  • Mode:

The matrix gamma (MG), also called the matrix-variate gamma, distribution is a generalization of the gamma distribution to positive-definite matrices. It is a more general and flexible version of the Wishart distribution (dwishart), and is a conjugate prior of the precision matrix of a multivariate normal distribution (dmvnp) and matrix normal distribution (dmatrixnorm).

The compound distribution resulting from compounding a matrix normal with a matrix gamma prior over the precision matrix is a generalized matrix t-distribution.

The matrix gamma distribution is identical to the Wishart distribution when \(\alpha = \nu / 2\) and \(\beta = 2\).

See Also

dgamma dmatrixnorm, dmvnp, and dwishart

Examples

Run this code
# NOT RUN {
library(LaplacesDemon)
k <- 10
dmatrixgamma(X=diag(k), alpha=(k+1)/2, beta=2, Sigma=diag(k), log=TRUE)
dwishart(Omega=diag(k), nu=k+1, S=diag(k), log=TRUE)
# }

Run the code above in your browser using DataLab