asterion.inference#
The inference module contains a handy Inference class which wraps
numpyro inference methods to facilitate the Bayesian workflow.
Module Contents#
- class Inference(model, *, n, nu, nu_err=None, seed=0)[source]#
Perform inference on a given model.
- Parameters
model (Model) – Model which predicts the asteroseismic mode frequencies.
nu (array_like) – Asteroseismic mode frequencies.
nu_err (array_like, optional) – Observational uncertainty on the asteroseismic mode frequencies.
seed (int) – Seed for pseudo-random number generation.
Example
from asterion import Model, Inference n = [9, 10, 11, 12, 13] nu = [111.1, 122.2, 133.3, 144.4, 155.5] nu_err = 0.01 model = Model(...) # Construct the model here infer = Inference(model, n=n, nu=nu, nu_err=nu_err, seed=42) # Sample from prior predictive infer.prior_predictive(num_samples=2000) # Sample from posterior infer.sample() # Sample from posterior predictive infer.posterior_predictive() # Get data from inference data = infer.get_data() # Save data data.to_netcdf('inference_data.nc')
- nu#
Observed mode frequencies.
- Type
- nu_err#
Uncertainty on observed mode frequencies.
- Type
numpy.ndarray, optional
- find_map(self, num_steps=10000, handlers=None, reparam='auto', svi_kwargs={})[source]#
EXPERIMENTAL: find MAP.
- Parameters
num_steps (int) – [description]. Defaults to 10000.
handlers (list, optional) – [description]. Defaults to None.
reparam (str, or numpyro.handlers.reparam) – [description]. Defaults to ‘auto’.
svi_kwargs (dict) – [description]. Defaults to {}.
- get_circ_var_names(self)[source]#
[summary]
- Returns
Circular variable names in the model.
- Return type
- get_trace(self, pred=False)[source]#
[summary]
- Parameters
pred (bool) – Whether to trace the predictive model or not. Default is False.
- Returns
Model trace.
- Return type
OrderedDict
- init_mcmc(self, model, num_warmup=1000, num_samples=1000, num_chains=1, sampler='NUTS', sampler_kwargs={}, **kwargs)[source]#
Initialises the MCMC sampler.
- Parameters
model (callable) – [desc]
num_warmup (int) – [description]. Defaults to 1000.
num_samples (int) – [description]. Defaults to 1000.
num_chains (int) – [description]. Defaults to 1.
sampler (str, or numpyro.infer.mcmc.MCMCKernel) – Choose one of [‘NUTS’], or pass a numpyro mcmc kernel.
sampler_kwargs (dict) – Keyword arguments to pass to the chosen sampler.
**kwargs – Keyword arguments to pass to mcmc instance.
- init_nested(self, model, num_live_points=50, max_samples=50000, sampler='multi_ellipsoid', **kwargs)[source]#
[summary]
- Parameters
- Returns
[description]
- Return type
- map_predictive(self, **kwargs)[source]#
EXPERIMENTAL: Get predictive from MAP.
- Parameters
- Returns
[description]
- Return type
- posterior_predictive(self, **kwargs)[source]#
[summary]
- Parameters
**kwargs – Keyword arguments to pass to Predictive instance.
- prior_predictive(self, num_samples=1000, **kwargs)[source]#
[summary]
- Parameters
num_samples (int) – Number of samples to take from the prior.
**kwargs – Keyword arguments to pass to Predictive instance.
- run_mcmc(self, model, num_warmup=1000, num_samples=1000, num_chains=1, sampler='NUTS', sampler_kwargs={}, extra_fields=(), init_params=None, **kwargs)[source]#
Runs MCMC for a given set of model arguments.
- Parameters
model (callable) – [desc]
num_warmup (int) – [description]. Defaults to 1000.
num_samples (int) – [description]. Defaults to 1000.
num_chains (int) – [description]. Defaults to 1.
sampler (str) – Choose one of [‘NUTS’]
sampler_kwargs (dict) – Keyword arguments to pass to the chosen sampler.
extra_fields (tuple) – Extra fields to report in sample_stats. Defaults to ().
init_params (dict) – Initial parameter values prior to sampling. Defaults to None.
**kwargs – Keyword arguments to pass to mcmc instance.
- Returns
[description]
- Return type
- run_nested(self, model, num_live_points=50, num_samples=1000, max_samples=50000, sampler='multi_ellipsoid', **kwargs)[source]#
[summary]
- Parameters
model (Model) – [description]
num_live_points (int) – [description]. Defaults to 100.
num_samples (int) – [description]. Defaults to 1000.
max_samples (int) – [description]. Defaults to 100000.
sampler (str) – [description]. Defaults to “multi_ellipsoid”.
**kwargs – Keyword arguments to pass to nested sampler instance.
- sample(self, num_samples=1000, method='nested', handlers=None, reparam='auto', **kwargs)[source]#
[summary]
- Parameters
num_samples (int) – Number of samples after warmup.
method (str) – Sampling method, choose from [‘mcmc’, ‘nested’].
handlers (list, optional) – Handlers to apply to the model during inference.
reparam (str, or numpyro.infer.reparam.Reparam) – Default is ‘auto’ will automatically reparameterise the model to improve sampling during MCMC.
**kwargs – Keyword arguments to pass to the sampling method.