Python · Open source
smcjax
Sequential Monte Carlo and Particle Filtering in JAX
Particle filters, state-space simulation, and sequential inference diagnostics implemented in JAX.
Overview
I built smcjax from the sequential inference work in my master’s thesis. The library includes bootstrap, auxiliary, and Liu-West particle filters along with simulation and diagnostics for state-space models.
The filters use jax.lax.scan and support JIT compilation and vectorization. Model-specific sampling and observation functions stay separate from the filtering code, so the same algorithms can be used with different models.
Technical highlights
- Bootstrap, auxiliary, and Liu-West particle filters
- Four resampling schemes through BlackJAX
- Conditional resampling based on effective sample size
- Weighted summaries, particle diversity, CRPS, and evidence diagnostics
- JIT- and vmap-compatible typed APIs
Topics
Sequential Monte CarloParticle filteringHidden Markov modelsBayesian inferenceJAX