Two research positions are available to support and improve the Baysig platform, which forms the core of BayesHive. We are looking for two postdocs to work on a practical system for large-scale inference in scientific and clinical datasets using bayesian statistical models, embedded in a typed functional programming language and based on stochastic dynamical systems.

Talk at Microsoft Research

20 December 2013

I gave a talk at Microsoft Research Cambridge with the title "Typed functional probabilistic programming: ready for practical use?" I am grateful to Drew Purves for inviting me; I enjoyed talking to all the talented people working there. They have several projects that are closely related to BayesHive and Baysig.

One of the interesting things you can do with probabilistic programming is to forecast the future evolution of a timeseries. One thing you need to do this is a model of the system, but you also need to handle the uncertainty correctly. In this blog post, I will show the impact of taking into consideration the uncertainty associated with parameter estimation. I will use Baysig, our purely functional, spatio-temporal, probabilistic programming language, but a similar analysis can be carried out in any other probabilistic programming language. I will use an example from financial data analysis, because stochastic models of financial data have been explored for some time and the data are readily available. However, these principles apply equally to scientific, retail or industrial data.

If I had a penny for every time I heard someone say: "They should have plotted this on a log-scale!" then... I might not be rich, but I could afford several cups of coffee. Even the really expensive ones from Starbucks.

The most successful languages for scientific data analysis are currently MATLAB, R, and Python, with Clojure and Julia1 playing catch-up. Did you notice that all of these have something in common? They are dynamically typed. The heavy-weight Fortran or C++ may be pulled out when performance is critical, but are often not the first go-to tool for researchers in many fields.

Lately, we have made a lot of progress on the BayesHive web application:

August update

22 August 2013

Thanks to everyone who logged in to have a look around over the last few months. You have provided a lot of valuable feedback about what worked and what didn't. We have fixed a lot of bugs as a result.

This document will show a simple Bayesian statistical analysis in the Baysig language. The code that carries out this analysis is generated by BayesHive through the "Linear regression" model builder, so you don't have to type it out yourself if you want to do something similar with your own data. But in this document, I want to go a bit more into the meaning of this code.

The web server component of BayesHive is built using Yesod, a web framework for Haskell that combines type safety and good performance with lightweight syntax for routes, persistence and templates. This post is written for other users of Yesod or Haskell, or those who are comparing Yesod and maybe Haskell to other development environments.

There are now quite a few JavaScript graphing solutions available out there, ranging from Flot (simple and easy to use) to D3.js (awesomely powerful, not quite as easy for a beginner to use). For BayesHive, we needed something that would be flexible enough to generate a range of plot types, and that we could easily integrate into the BayesHive document processing chain. Since users can generate documents with arbitrary plots in them, it would have been difficult to coordinate the rendering of HTML pages based on documents and the parallel JavaScript code needed to draw plots, so we went for a slightly different approach.

BayesHive has now reached a level of stability where we would like to ask for some feedback and beta testing from a larger number of users. BayesHive is still a prototype product, so we are not asking anyone to pay for using it. At this stage we mostly value your input on how ready BayesHive is in supporting your day-to-day data analysis needs. You can use the Feedback system inside BayesHive, or email us on info@bayeshive.com.