| MNIW-dist | R Documentation | 
Generate samples from the Matrix-Normal Inverse-Wishart distribution.
rMNIW(n, Lambda, Sigma, Psi, nu, prec = FALSE)
rmniw(n, Lambda, Omega, Psi, nu)
n | 
 number of samples.  | 
Lambda | 
 A mean matrix of size   | 
Sigma | 
 A row-wise variance or precision matrix of size   | 
Psi | 
 A scale matrix of size   | 
nu | 
 Scalar degrees-of-freedom parameter.  | 
prec | 
 Logical; whether or not   | 
Omega | 
 A between-row precision matrix of size   | 
The Matrix-Normal Inverse-Wishart (MNIW) distribution (\boldsymbol{X}, \boldsymbol{V}) \sim \textrm{MNIW}(\boldsymbol{\Lambda}, \boldsymbol{\Sigma}, \boldsymbol{\Psi}, \nu) on random matrices \boldsymbol{X}_{p \times q} and symmetric positive-definite \boldsymbol{V}_{q\times q} is defined as
\begin{array}{rcl}
\boldsymbol{V} & \sim & \textrm{Inverse-Wishart}(\boldsymbol{\Psi}, \nu) \\
\boldsymbol{X} \mid \boldsymbol{V} & \sim & \textrm{Matrix-Normal}(\boldsymbol{\Lambda}, \boldsymbol{\Sigma}, \boldsymbol{V}),
\end{array}
where the Matrix-Normal distribution is defined as the multivariate normal
\textrm{vec}(\boldsymbol{X}) \sim \mathcal{N}(\textrm{vec}(\boldsymbol{\Lambda}), \boldsymbol{V} \otimes \boldsymbol{\Sigma}),
where \textrm{vec}(\boldsymbol{X}) is a vector stacking the columns of \boldsymbol{X}, and \boldsymbol{V} \otimes \boldsymbol{\Sigma} denotes the Kronecker product.
rmniw() is a convenience wrapper to rMNIW(Sigma = Omega, prec = TRUE), for the common situation in Bayesian inference with conjugate priors when between-row variances are naturally parametrized on the precision scale.
A list with elements:
XArray of size p x q x n random samples from the Matrix-Normal component (see Details).
VArray of size q x q x n of random samples from the Inverse-Wishart component.
# problem dimensions
p <- 2
q <- 3
n <- 10 # number of samples
# parameter specification
Lambda <- matrix(rnorm(p*q),p,q) # single argument
Sigma <- rwish(n, Psi = diag(p), nu = p + rexp(1)) # vectorized argument
Psi <- rwish(n = 1, Psi = diag(q), nu = q + rexp(1)) # single argument
nu <- q + rexp(1)
# simulate n draws
rMNIW(n, Lambda = Lambda, Sigma = Sigma, Psi = Psi, nu = nu)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.