Bayesian

I was born in Tunbridge Wells where the Reverend Thomas Bayes spent much of his life. Unlike Bayes I am not a minister of the church, although I do have a religious-like fervour for all things Bayesian.

If you don’t know, Bayesian statistics is an analytical framework increasingly used in research in the social, physical and biological sciences. Specifically Bayesian statistics uses the language of probability to express our uncertainty about scientific hypotheses. A ‘hypothesis’ is an explanation about the state of the world that may be true or false; to ensure that a hypothesis is ‘scientific’ it must be testable with data. Accordingly, Bayesian statistics uses data we collect from the world to update our view on scientific hypotheses.

As part of my fascination with Bayesian statistics, I wrote a textbook, ‘A Student’s Guide to Bayesian Statistics’, which was published by Sage in May 2018, and is now available to order on Amazon.

In a collaboration with Michael Clerx, Martin Robinson, Sanmitra Ghosh, Chon Lei, Gary Mirams and Dave Gavaghan at the University of Oxford and the University of Nottingham, we are working to develop a robust software (called Pints) that allows efficient optimisation and sampling for difficult time series models in the physical and biological sciences. A paper is currently being written to introduce Pints and detail a number of computational experiments which we have run using this software.

I also collaborate with Simon Tavener at Colorado State University (and Dave Gavaghan, again) to develop a probabilistic framework to undertake inverse sensitivity analysis in deterministic systems. A paper is forthcoming here that introduces a sampling methodology that allows inverse sensitivity analyses to be conducted on models of significantly higher dimension than was previously possible.

I also teach a course on Bayesian statistics for PhD students the University of Oxford. The course page with information on the syllabus is here.

The distribution zoo

I created a shiny app called ‘The distribution zoo‘ that allows a user to investigate distributions. This app allows a user to:

  • Dynamically change the parameters of 24 distributions, ranging from fairly simple cases (for example, normal or Poisson), up to more complex cases such as the LKJ correlation distribution, and investigate how these parameters affect the resultant distributional properties, including plots of the probability density function or probability mass function, histograms of the sampling distribution for some cases where the PDFs are hard to visualise, and cumulative distribution functions where appropriate.
  • Contains dynamic code snippets in R, Python, Matlab, Mathematica and Stan, which reflect changes in the parameter values. Importantly, for each distribution and parameter set, these functions should give equivalent results across all five languages. For me, this is really useful, since different languages have different parameterisations and some (Python!) have really non-standard parameterisations, which can make translating code from one language to another tricky.
  • Contains detailed and vetted formulae for each distribution giving useful properties. These formulae are also available in LaTeX form to make using them in articles, reports and so on simpler.

Because it’s been deployed to the web, you can use this app anywhere. Look at the zoo of distributions on your laptop, tablet or smartphone!

This code is fresh and so, whilst it has been tested extensively, errors may occur. If you find any, please create an issue on the Github repo here.