Overview

This module was originally developed to fit transit light curves using Gaussian Processes (GPs) in order to model the systematics as a stochastic process, as described in Gibson et al. (2012), but it is also useful as a general tool for fitting datasets using GPs with arbitrary kernel and mean functions. It was originally part of my general Infer module, but new features have regularly been added, some of which are described in more recent papers, see e.g. Gibson et al. (2013a, 2013b) and Gibson (2014) for details. Please consider citing these if you make use of this code.

For an introduction to GPs please see these papers, or for a text book introduction see Gaussian Processes for Machine Learning. For a more generic introduction to Bayesian inference including an relatively easy intro to GPs I recommend Pattern Recognition and Machine Learning. I also found this tutorial by M. Ebden incredibly useful when learning GPs.

Note

The standard solver uses cholesky decomposition (via scipy). I experimented with multiple methods (including C code, GPUs, other python implementations), and this was the fastest and most convenient solver I could find without using approximations (although GPUs are faster for large matrices). There is also a fast solver for Toplitz covaraince kernels (diagonal-constant matrix) using the Levenson-Trench-Zohar algorithm (C implementaion), and for convenience, a white noise kernel. The GP class will recognise the correct kernel-type for the built-in kernels. I might include additional solvers in the future, but these have proved sufficient for the light curve models I’ve explored so far.

Installation

Download the module from github at https://github.com/nealegibson/GeePea or clone using git:

$ git clone https://github.com/nealegibson/GeePea

Then install as normal:

$ cd GeePea
$ python setup.py build
$ python setup.py install [--prefix=/path_to_install_dir]