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()