dist.Matrix.Normal | R Documentation |
These functions provide the density and random number generation for the matrix normal distribution.
dmatrixnorm(X, M, U, V, log=FALSE)
rmatrixnorm(M, U, V)
X |
This is data or parameters in the form of a matrix with
|
M |
This is mean matrix with |
U |
This is a |
V |
This is a |
log |
Logical. If |
Application: Continuous Multivariate Matrix
Density: p(\theta) =
\frac{\exp(-0.5tr[V^{-1}(X-M)'U^{-1}(X-M)])}{(2\pi)^{nk/2}|V|^{n/2}|U|^{k/2}}
Inventors: Unknown
Notation 1: \theta \sim \mathcal{MN}_{n \times k}(M, U,
V)
Notation 2: p(\theta) = \mathcal{MN}_{n \times k}(\theta |
M, U, V)
Parameter 1: location n \times k
matrix M
Parameter 2: positive-definite n \times n
scale matrix U
Parameter 3: positive-definite k \times k
scale matrix V
Mean: E(\theta) = M
Variance: Unknown
Mode: Unknown
The matrix normal distribution is also called the matrix Gaussian, matrix-variate normal, or matrix-variate Gaussian distribution. It is a generalization of the multivariate normal distribution to matrix-valued random variables.
An example of the use of a matrix normal distribution is multivariate
regression, in which there is a j \times k
matrix of
regression effects of j
predictors for k
dependent
variables. For univariate regression, having only one dependent
variable, the j
regression effects may be multivariate normally
distributed. For multivariate regression, this multivariate normal
distribution may be extended to a matrix normal distribution to account
for relationships of the regression effects across k
dependent
variables. In this example, the matrix normal distribution is the
conjugate prior distribution for these regression effects.
The matrix normal distribution has two covariance matrices, one for the
rows and one for the columns. When U
is diagonal, the rows are
independent. When V
is diagonal, the columns are independent.
dmatrixnorm
gives the density and
rmatrixnorm
generates random deviates.
Statisticat, LLC. software@bayesian-inference.com
dinvmatrixgamma
,
dmatrixgamma
, and
dmvn
.
library(LaplacesDemon)
N <- 10
K <- 4
U <- as.positive.definite(matrix(rnorm(N*N),N,N))
V <- as.positive.definite(matrix(rnorm(K*K),K,K))
x <- dmatrixnorm(matrix(0,N,K), matrix(0,N,K), U, V)
X <- rmatrixnorm(matrix(0,N,K), U, V)
joint.density.plot(X[,1], X[,2], color=TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.