Cosmological Inference#
After training the emulator, the final step in the pipeline is to perform cosmological inference using the observed data. This is done using the sunbird inference module.
Inference Methods#
The sunbird.inference module provides several inference methods:
Likelihood-based inference: Traditional Bayesian inference using MCMC or nested sampling
Simulation-based inference (SBI): Neural network-based inference methods
Approximate Bayesian Computation (ABC): Likelihood-free inference
Running Inference#
The general workflow for inference is:
Load the trained emulator for your chosen statistic(s)
Prepare the observed data in the correct format
Define the priors for your cosmological and galaxy-halo parameters
Run the inference using the appropriate method
Save and analyze the chains
Example Usage#
from sunbird.inference import Inference
from acm.observables import MyObservable # Your observable class
# Initialize the observable with paths to model and data
obs = MyObservable(...)
# Get the observed data and emulator
data = obs.get_data()
emulator = obs.get_model()
# Set up inference
inference = Inference(
emulator=emulator,
data=data,
priors=priors,
)
# Run inference
chains = inference.run()
inference.save_chain(path='chains/my_chain.pkl')
See also
For detailed examples, see the sunbird documentation and the inference scripts in the projects directory.
Chain Storage#
Inference chains are stored following the conventions described in the Data Storage section.
The chain files contain:
samples: The parameter samples from the chainweights: Sample weights (if applicable)ranges: Parameter rangesnames: Parameter nameslabels: LaTeX labels for plottinglog_likelihood,log_prior,log_posterior: (method-dependent)
Visualization and Analysis#
After running inference, you can use getdist or other tools to visualize and analyze the chains:
import getdist
from getdist import plots
# Load chain
samples = getdist.loadMCSamples('chains/my_chain')
# Create triangle plot
g = plots.get_subplot_plotter()
g.triangle_plot([samples], filled=True)
Tip
The acm.utils module provides helper functions for chain analysis and visualization.