Results

Fitting in redback returns a redback.result object. This object provides a homogenous format for all further analysis and plotting the results of the fitting. The redback.result object inherits from the bilby.result object so all functionality in the bilby.result such as making pp_plots, walker_plots, getting credible intervals etc. is automatically implemented. See the bilby API for a full list of features.

The result file is by default saved to the transient/transient_name/model/, but the user can of course change this. It is by default saved in a json format, which can be changed to ‘hdf5’ for more compression.

Fitting your favourite transient

The interface to fit is simple. Once a user has defined a transient object, a model object and a prior object, the user can fit the data via,

result = redback.fit_model(transient, model, priors)

The more advanced user can change things such as the sampler/likelihood etc

Changing the likelihood used for fitting

Some advanced users may wish to change the default likelihood used in redback to another likelihood implemented in redback or use a likelihood. For example, you may want to fit an additional noise source. Or fit non-detections. Or fit with errors in time etc.

Changing the likelihood used can be done easily by

import redback
transient = redback.transient.Transient(transient_name, data_mode, filters)
likelihood = redback.likelihood.Likelihood(transient, model)
result = redback.fit_model(likelihood, priors, sampler, outdir=outdir, label=label)

Plotting lightcurves and corner plots

Plotting a corner plot is as simple as

result.plot_corner()

The user can pass in different keyword arguments to change the look/format/what parameters are plotted. See the bilby API.

We can also plot the fit

result.plot_lightcurve(random_models=100)
result.plot_multiband_lightcurve()

Here the first line will plot the lightcurve on a single panel with a 100 random models randomly drawn from the posterior and the maximum likelihood model. The second line will plot the lightcurve on multiple panels, each panel corresponding to a particular band/frequency.

In both functions, users can pass additional keyword arguments to change the aesthetics or what is plotted. See the redback API for more details.

Further analysis

The result file provides the posterior values as a pandas data frame accessible via result.posterior. Other properties such as the evidence etc are also stored.

These posteriors and properties can be used for further analysis such as different diagnostic plots, model selection, reweighting or hierarchical inference.

The redback.analysis object enables users to easily make plots for diagnostics or further plots for specific models/transients.

Loading a result file

We also provide functionality for loading in a result file.

import redback
redback.result.read_in_result(filepath)

Here filepath is the path to file, the result file recreates the transient object exactly as it was used when fitted. This ensures users can keep their results consistent with the data_mode/filters etc of the transient they chose.