InverseGamma
DistributionInverseGamma(concentration: Tensor | float, rate: Tensor | float, validate_args: bool | None = None)Inverse-Gamma distribution on .
Distribution of the reciprocal of a Gamma random variable: if then . Widely used as the conjugate prior for the variance parameter of a Normal distribution with known mean, and as a prior on positive scale parameters more generally.
Parameters
concentrationTensor or floatrateTensor or floatvalidate_argsbool= NoneTrue, validate parameter constraints at construction time.Notes
Probability density on :
Moments (when defined):
Mode: .
Conjugacy: with a likelihood and known mean , the posterior over is again Inverse-Gamma with updated parameters , .
Because Lucid's lucid.distributions.Gamma sampler is
rejection-based, has_rsample is False here and
sample returns detached samples obtained by reciprocating
a Gamma draw.
Examples
>>> import lucid
>>> from lucid.distributions import InverseGamma
>>> d = InverseGamma(concentration=3.0, rate=2.0)
>>> d.mean # β / (α - 1) = 1.0
Tensor(1.0)
>>> d.sample((4,))
Tensor([...])Methods (6)
__init__
→None__init__(concentration: Tensor | float, rate: Tensor | float, validate_args: bool | None = None)Initialise an Inverse-Gamma distribution.
Parameters
concentrationTensor | floatrateTensor | floatvalidate_argsbool | None= NoneTrue, validate parameter constraints at construction time.mean
→Tensormean: TensorDefined for concentration > 1: β / (α − 1).
variance
→Tensorvariance: TensorDefined for concentration > 2:
β² / ((α − 1)² (α − 2)).
sample
→Tensorsample(sample_shape: tuple[int, ...] = ())Sample by taking the reciprocal of a Gamma sample.
log_prob
→Tensorlog_prob(value: Tensor)Log-probability density of the Inverse-Gamma distribution.
Parameters
valueTensorReturns
TensorLog-density .
entropy
→Tensorentropy()α + log β + log Γ(α) − (1 + α) · ψ(α).