Quantitative Research · Portfolio Project

Latent Liquidity & Systemic Risk Dashboard

Bayesian state-space model inferring latent market stress from daily microstructure data. Two particle filter architectures — an adaptive Differentiable PF with Sinkhorn OT resampling and a fixed-parameter Bootstrap PF — are compared across filtering quality and 30-day early-warning performance.

DPF · Sinkhorn OT Bootstrap PF SVL + DRD Covariance Crisis Early Warning 9 Historical Episodes
0.567
Endo. Episode AUC
vs BPF 0.500
0.682
Daily ROC-AUC
vs BPF 0.670
340×
Crisis/Calm Ratio
GFC 0.78 · calm 0.002
47–60d
Warning Lead Time
5 of 9 episodes detected
4,526
Training Sample
trading days · 2007–2026
Model Comparison

DPF vs BPF at a glance

DPF
Differentiable Particle Filter
ArchitectureSinkhorn OT resampling (ε=0.5)
ParametersOnline gradient (Adam, η=5e-4)
ParticlesN = 500
Brier Score0.212
Endo. Episode AUC0.567
Signal-to-noise2.67
BPF
Bootstrap Particle Filter
ArchitectureMultinomial resampling
ParametersFixed (hand-calibrated)
ParticlesN = 1000
Posterior CI width0.219
Tail prob. AUC0.726
Mean lead time50.2d
Interactive

Time Window

Select an era or custom range
Loading data…
Signal

60-day Forward Crisis Probability

Logistic early-warning layer · dashed = 0.50 threshold
Rendering…
Recovered Latent Factor

Liquidity Stress Lt with 90% CI

Threshold L=2 · bar = tail prob P(L>2)
Rendering…
Filter Internals

Latent Factors ht (log-vol) and zt (correlation driver)

DPF posterior means
Rendering…
Run It Yourself

Reproduce Results

Full results page →
bash
$ pip install -r requirements.txt
$ python main.py run # full pipeline: train → predict → calibrate → predict → bench
# Or run individual steps:
$ python main.py train # learn DPF parameters (rolling 120d windows)
$ python main.py predict --filter dpf # DPF filter + forward simulation
$ python main.py calibrate --filter dpf # fit logistic warning model
$ python main.py bench # DPF vs BPF comparison + all figures
$ python main.py animate --start 2007-06-01 --end 2009-06-01 # animated GIF