pyfilter

pyfilter is a package designed for joint parameter and state inference in (mainly) non-linear state space models using Sequential Monte Carlo and variational inference. It is similar to pomp, but implemented in Python leveraging pytorch. The interface is heavily inspired by pymc3.

Installation

Install the package by typing the following in a git shell or similar

pip install git+https://github.com/tingiskhan/pyfilter.git

Implementations

Below is a list of implemented algorithms/filters.

Filters

The currently implemented filters are

  1. SISR
  2. APF
  3. UKF

For filters 1. and 2. there exist different proposals, s.a.

  1. Optimal proposal when observations are linear combinations of states, and normally distributed.
  2. Locally linearized observation density, mainly used for models having log-concave observation density.
  3. Unscented proposal of van der Merwe et al.

Algorithms

The currently implemented algorithms are

  1. NESS
  2. SMC2 (see here for one of the original authors' implementation)
  3. Variational Bayes - currently only MeanField is implemented
  4. SMC2FW

Caveats

Please note that this is a project I work on in my spare time, as such there might be errors in the implementations and sub-optimal performance. You are more than welcome to report bugs should you try out the library.