jesterTOV.inference.base.prior.MultivariateGaussianPrior#

class MultivariateGaussianPrior(parameter_names, mean=None, cov=None)[source]#

Bases: Prior

Multivariate Gaussian prior \(\mathcal{N}(\mu, \Sigma)\).

By default this is the standard multivariate normal \(\mathcal{N}(0, I_d)\), i.e. independent standard normals for each dimension. Arbitrary mean and covariance can be supplied for general use.

Variables:
  • mean (Float[Array, " n_dim"]) – Mean vector.

  • cov (Float[Array, "n_dim n_dim"]) – Covariance matrix (must be positive definite).

__init__(parameter_names, mean=None, cov=None)[source]#
Parameters:
  • parameter_names (list[str]) – Names for each dimension.

  • mean (array-like, optional) – Mean vector of length len(parameter_names). Defaults to zeros.

  • cov (array-like, optional) – Covariance matrix of shape (n_dim, n_dim). Defaults to identity.

Methods

__init__(parameter_names[, mean, cov])

add_name(x)

Turn an array into a dictionary.

log_prob(z)

Evaluate \(\log \mathcal{N}(z \mid \mu, \Sigma)\).

sample(rng_key, n_samples)

Sample from \(\mathcal{N}(\mu, \Sigma)\).

Attributes

n_dim

mean

cov

parameter_names

composite

cov: Float[Array, 'n_dim n_dim']#
log_prob(z)[source]#

Evaluate \(\log \mathcal{N}(z \mid \mu, \Sigma)\).

Parameters:

z (dict[str, Float]) – Dictionary mapping parameter names to scalar values.

Return type:

Float

Returns:

Float – Log probability (scalar).

mean: Float[Array, 'n_dim']#
sample(rng_key, n_samples)[source]#

Sample from \(\mathcal{N}(\mu, \Sigma)\).

Parameters:
  • rng_key (PRNGKeyArray) – JAX random key.

  • n_samples (int) – Number of samples to draw.

Return type:

dict[str, Float[Array, 'n_samples']]

Returns:

dict[str, Float[Array, “ n_samples”]] – Samples keyed by parameter name.