making Bayesian modelling easy(er)¶
uravu
is about the relationship between some data and a function that may be used to describe the data.
The aim of uravu
is to make using the amazing Bayesian inference libraries that are available in Python as easy as scipy.optimize.curve_fit()
.
Therefore enabling many more to make use of these exciting tools and powerful libraries.
Plus, we have some nice plotting functionalities available in the plotting
module, capable of generating publication quality figures.
In an effort to make the uravu
API friendly to those new to Bayesian inference, uravu
is opinionated, making assumptions about priors amoung other things.
However, we have endevoured to make it straightforward to ignore these opinions.
In addition to the library and API, we also have some basic tutorials discussing how Bayesian inference methods can be used in the analysis of data.
uravu
is under active development, more details of which can be found on Github.
Bayesian inference in Python¶
There are a couple of fantastic Bayesian inference libraries available in Python that uravu
makes use of:
emcee
: enables the use of the Goodman & Weare’s Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler to evaluate the structure of the model parameter posterior distributions,dynesty
: implements the nested sampling and dynamic nested sampling algorithms for evidence estimation.
Where function
is some user-defined function, abscissa
is x-data, ordinate
is y-data, and ordinate_error
is y-uncertainty, getting an uravu.relationship.Relationship
running is as simple as.
from uravu.relationship import Relationship
modeller = Relationship(function, abscissa, ordinate, ordinate_error=ordinate_error)
modeller.max_likelihood('mini')
modeller.mcmc()
modeller.nested_sampling()