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.

An example of the type of figures that uravu can produce. Showing straight line distribution with increasing uncertainty.

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:

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