Generate a configuration object that specifies a multivariate Normal mixture kernel, where users can specify the hyperparameters for the conjugate prior of the multivariate
Normal mixture. We assume that the data are d-dimensional vectors \(\boldsymbol{y}_i\), where \(\boldsymbol{y}_i\) are i.i.d
Normal random variables with mean \(\boldsymbol{\mu}\) and covariance matrix \(\boldsymbol{\Sigma}\).
The conjugate prior is
$$\pi(\boldsymbol \mu, \boldsymbol \Sigma\mid\boldsymbol m_0,\kappa_0,\nu_0,\boldsymbol \Lambda_0)=
\pi_{\mu}(\boldsymbol \mu|\boldsymbol \Sigma,\boldsymbol m_0,\kappa_0)\pi_{\Sigma}(\boldsymbol \Sigma \mid \nu_0,\boldsymbol \Lambda_0),$$
$$ \pi_{\mu}(\boldsymbol \mu|\boldsymbol \Sigma,\boldsymbol m_0,\kappa_0) =
\frac{\sqrt{\kappa_0^d}}{\sqrt {(2\pi )^{d}|{\boldsymbol \Sigma }|}} \exp \left(-{\frac {\kappa_0}{2}}(\boldsymbol\mu -{\boldsymbol m_0 })^{\mathrm {T} }{\boldsymbol{\Sigma }}^{-1}(\boldsymbol\mu-{\boldsymbol m_0 })\right),
\qquad \boldsymbol \mu\in\mathcal{R}^d,$$
$$\pi_{\Sigma}(\boldsymbol \Sigma\mid \nu_0,\boldsymbol \Lambda_0)= {\frac {\left|{\boldsymbol \Lambda_0 }\right|^{\nu_0 /2}}{2^{\nu_0 d/2}\Gamma _{d}({\frac {\nu_0 }{2}})}}\left|\boldsymbol \Sigma \right|^{-(\nu_0 +d+1)/2}e^{-{\frac {1}{2}}\mathrm {tr} (\boldsymbol \Lambda_0 \boldsymbol \Sigma^{-1})}
, \qquad \boldsymbol \Sigma^2>0,$$
where mu0
corresponds to \(\boldsymbol m_0\), ka0
corresponds to \(\kappa_0\),
nu0
to \(\nu_0\), and Lam0
to \(\Lambda_0\).
AM_mix_hyperparams_multinorm(mu0 = NULL, ka0 = NULL, nu0 = NULL, Lam0 = NULL)
The hyperparameter \(\boldsymbol m_0\).
The hyperparameter \(\kappa_0\).
The hyperparameter \(\nu_0\).
The hyperparameter \(\Lambda_0\).
An AM_mix_hyperparams
object. This is a configuration list to be used as mix_kernel_hyperparams
argument for AM_mcmc_fit
.
Default is (mu0=c(0,..,0)
, ka0=1
, nu0=Dim+2
, Lam0=diag(Dim))
with Dim
is the dimension of the data y
.
We advise the user to set \(\nu_0\) equal to at least the dimension of the data, Dim
, plus 2.
# NOT RUN {
AM_mix_hyperparams_multinorm ()
# }
Run the code above in your browser using DataLab