/pybisp

This aims to be a collection of tools for performing Bayesian parameter estimation and model selection on stochastic processes. The immediate goal is to implement estimation methods

Primary LanguageJupyter Notebook

PyBISP

PyBISP is a pure Python package for Bayesian Inference of Stochastic Processes.

Currently it can estimate the parameters of the

  • Wiener process
  • Ornstein-Uhlenbeck process

using exact likelihoods from discretely observed sample paths. Possible applications are to the analysis of particle trajectories of optically trapped particles or to the motion of proteins and filaments in live tracking of cells, see related work below.

There is a roadmap to include Monte Carlo sampling methods for approximate inference of diffusion processes for which exact likelihoods are not available analytically.

Contributions and ideas are welcome!

Install

pip install pybisp

or

git clone https://github.com/ronojoy/pybisp.git
cd pybisp
python setup.py install

Use

import pybisp as pb
import pandas as pd
data = pb.ReadDataFrame('samplepath.csv') # read time series data 
ou = pb.ou.Inference(data)                # inference assuming Ornstein-Uhlenbeck process 
theta = ou.mapEstimate()                  # get maximum aposteriori parameter estimate
dtheta = ou.erroBar() 			           # get error bar of the MAP estimate
ou.plotLogProb()  			               # plot the log posterior around the MAP estimate 

A tutorial notebook demonstrates the use of the package for estimating the stiffness and diffusion coefficient of an optically trapped particle

Roadmap

  • Approximate likelihood inference of Markov diffusions using short-time expansions of the propagators
  • Monte Carlo sampling methods for multidimensional Markov diffusions
  • Applications to correlated Brownian motion

Related work