Bootstrap particle filter for Python¶
Welcome to the pypfilt documentation. This package implements a bootstrap particle filter that can be used for recursive Bayesian estimation and forecasting.
If there is a system or process that can be:
Described (modelled) with mathematical equations; and
Measured repeatedly in some (noisy) way.
Then you can use pypfilt to estimate the state and/or parameters of this system.

Forecasts for \(x(t)\), \(y(t)\), and \(z(t)\) of the Lorenz63
system at time \(t=20\).¶
Depending on your preferred learning style, start with any of the following:
- The Getting Started tutorial
Shows how to build a simulation model, generate simulated observations from this model, fit the model to these observations, and generate the example forecasts, above.
- The Key Concepts guide
Introduces the various pypfilt components and how they fit together.
Note
This guide is currently incomplete.
- The How-to Guides
Demonstrates how to solve particular problems.
Note
These guides are currently incomplete.
- The Scenario Settings guide
Explains the settings that can be defined in a scenario file.
- The API documentation
Presents the details of each pypfilt component and is likely only of interest if you need to develop your own components.
License¶
The code is distributed under the terms of the BSD 3-Clause license (see
LICENSE
), and the documentation is distributed under the terms of the
Creative Commons BY-SA 4.0 license.
User Documentation
- Home
- Installation
- Getting Started
- Key Concepts
- Scenario definitions
- Simulation models
- Prior distributions
- Observations
- Observation models
- Particle filter
- Particle filter events
- Time scales
- Lookup (input) tables
- Summary (output) tables
- Summary monitors
- Particle filter settings
- Other simulation settings
- Simulation contexts
- Generating reproducible results
- Plotting
- HDF5
- How-to Guides
- Creating your own model
- Creating your own observation model
- Defining prior distributions
- Reading prior samples from external data files
- Provide models with lookup tables
- Define partition-specific model parameters
- Provide observation models with lookup tables
- Using lookup tables in your own models
- Using lookup tables in your own observation models
- Defining and using parameters
- Particle filter: resampling
- Particle filter: post-regularisation
- Creating summary tables
- Resampling before calculating summary statistics
- Creating summary monitors
- Load summary tables as Pandas data frames
- Implement a continuous-time Markov chain (CTMC) model
- Implement a discrete-time Markov chain (CTMC) model
- Implement an ordinary differential equation (ODE) model
- Implement a stochastic differential equation (SDE) model
- Implement an observation model that relies on past state
- Record only a subset of simulation model time-steps
- Scenario Settings
- API documentation
Development
- Contributing to pypfilt
- Testing with nox
- Release process
- Unicode and byte strings
- Editable installs
- Change Log
- 0.X.Y (YYYY-MM-DD)
- 0.8.0 (2022-11-03)
- 0.7.2 (2022-06-03)
- 0.7.1 (2022-05-26)
- 0.7.0 (2022-04-20)
- 0.6.1 (2022-01-05)
- 0.6.0 (2020-08-12)
- 0.5.5 (2019-11-25)
- 0.5.4 (2017-10-26)
- 0.5.3 (2017-10-26)
- 0.5.2 (2017-05-05)
- 0.5.1 (2017-04-28)
- 0.5.0 (2017-04-26)
- 0.4.3 (2016-09-16)
- 0.4.2 (2016-06-16)
- 0.4.1 (2016-04-26)
- 0.4.0 (2016-04-22)
- 0.3.0 (2016-02-23)
- 0.2.0 (2015-11-16)
- 0.1.2 (2015-06-08)
- 0.1.1 (2015-06-01)
- 0.1.0 (2015-05-29)