Skip to content


final class MultivariateNormalInverseGamma(μ:Expression<Real[_]>, Σ:Expression<LLT>, σ2:InverseGamma) < Distribution<Real[_]>

Multivariate normal-inverse-gamma distribution.

This represents the joint distribution:

\begin{align*} \sigma^2 & \sim \mathrm{Inverse-Gamma}(\alpha, \beta) \\ x \mid \sigma^2 & \sim \mathrm{N}(\mu, \Sigma\sigma^2), \end{align*}

which may be denoted:

(x, \sigma^2) \sim \mathrm{Normal-Inverse-Gamma}(\mu, \Sigma, \alpha, \beta),

and is a conjugate prior of a Gaussian distribution with both unknown mean and variance. The variance scaling is independent and identical in the sense that all components of x share the same \sigma^2.

In model code, it is not usual to use this class directly. Instead, establish a conjugate relationship via code such as the following:

σ2 ~ InverseGamma(α, β);
x ~ Gaussian(μ, Σ*σ2);
y ~ Gaussian(x, σ2);

where the last argument in the distribution of y must appear in the last argument of the distribution of x. The operation of Σ on σ2 may be multiplication on the left (as above) or the right, or division on the right.

Factory Functions

Name Description

Member Variables

Name Description
Λ:Expression<LLT> Precision.
ν:Expression<Real[_]> Precision times mean.
α:Expression<Real> Variance shape.
γ:Expression<Real> Variance scale accumulator.
σ2:InverseGamma Variance scale.

Factory Function Details

function MultivariateNormalInverseGamma(μ:Expression<Real[_]>, Σ:Expression<LLT>, σ2:InverseGamma) -> MultivariateNormalInverseGamma