Matrix normal distribution

The matrix normal distribution is a probability distribution that is a generalization of the normal distribution. The probability density function for the random matrix X (n &times; p) that follows the matrix normal distribution has the form

p(\mathbf{X}|\mathbf{M}, {\boldsymbol \Omega}, {\boldsymbol \Sigma}) =(2\pi)^{-np/2} |{\boldsymbol \Omega}|^{-n/2} |{\boldsymbol  \Sigma}|^{-p/2} \exp\left(   -\frac{1}{2}    \mbox{tr}\left[      {\boldsymbol  \Omega}^{-1}      (\mathbf{X} - \mathbf{M})^{T}      {\boldsymbol  \Sigma}^{-1}      (\mathbf{X} - \mathbf{M})    \right]  \right). $$ where M is n &times; p, Ω is p &times; p and Σ is n &times; n. There are several ways to define the two covariance matrices. One possibility is

{\boldsymbol \Sigma} = E[  (\mathbf{X} - \mathbf{M})(\mathbf{X} - \mathbf{M})^{T}]\;,\;\;\;\; {\boldsymbol \Omega} = E[  (\mathbf{X} - \mathbf{M})^{T} (\mathbf{X} - \mathbf{M})]/c, $$ where c is a constant which depends on Σ and ensures appropriate power normalization.

The matrix normal is related to the multivariate normal distribution in the following way:
 * $$\mathbf{X} \sim MN_{n\times p}(\mathbf{M}, {\boldsymbol \Omega}, {\boldsymbol \Sigma})$$

if and only if



\mathrm{vec}\;\mathbf{X} \sim N_{np}(\mathrm{vec}\;\mathbf{M},    {\boldsymbol \Omega}\otimes{\boldsymbol \Sigma}), $$

where $$\otimes$$ denotes the Kronecker product and $$\mathrm{vec}\;\mathbf{M}$$ denotes the vectorization of $$\mathbf{M}$$.