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!
pip install pybisp
or
git clone https://github.com/ronojoy/pybisp.git
cd pybisp
python setup.py install
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
- 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