Skip to content


final class MultivariateNormalInverseGammaDistribution<Arg1, Arg2, Arg3, Arg4>(ν:Arg1, Λ:Arg2, k:Arg3, γ:Arg4) < 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 directlyDistribution. 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.


This class does not inherit from MultivariateTDistribution, as it is typically used for a random variable that is marginalized out.

Member Variables

Name Description
ν:Arg1 Precision times mean.
Λ:Arg2 Precision.
k:Arg3 Degrees of freedom.
γ:Arg4 Variance scale.