Small Group Tutorials

Here to help students catch up, keep up, and move ahead. Book a consultation here.

How Particle-Filter Algorithms Track Stochastic Volatility: Sequential Bayesian Weights, ESS, Resampling, Likelihood Estimation, Degeneracy and Model Failure

Reader question: If volatility is a hidden continuous state that changes through time and the observation equation is nonlinear or non-Gaussian, how can an algorithm update its uncertainty one observation at a time?

A particle filter represents the hidden-state distribution with a cloud of weighted simulated states. Each new observation changes the weights. Particles that explain the observation well receive more probability mass; particles that explain it poorly lose weight. When the weights collapse onto too few particles, the algorithm resamples and continues.

This article owns the sequential nonlinear/non-Gaussian state-estimation problem: a state-space model + observations + a particle proposal/resampling rule → filtered state distributions, likelihood estimates, volatility forecasts and diagnostics about Monte Carlo degeneracy and model misspecification.

It does not own stochastic-volatility model selection, option pricing calibration or Kalman filtering in linear-Gaussian systems. Those are separate jobs. The purpose here is to understand how Sequential Monte Carlo approximates Bayesian filtering when analytic recursions are unavailable.

This is public mathematical and computational education. It is not personalized financial advice, a trading signal or a claim that latent volatility is directly observable.

1. A stochastic-volatility state-space model

A simple model may write returns as:

rt = exp(ht/2) εt,

with:

εt ~ Normal(0,1).

The latent log variance evolves as:

ht = μ + φ(ht−1−μ) + σηt,

where ηt is a state shock.

The observation depends nonlinearly on ht because volatility enters through exp(ht/2). The filtering distribution:

p(ht | r1:t)

is generally not Gaussian in closed form.

2. The Bayesian filtering recursion

Every state-space filter has two conceptual steps.

Prediction:

p(ht | r1:t−1) = ∫ p(ht|ht−1) p(ht−1|r1:t−1) dht−1.

Update:

p(ht|r1:t) ∝ p(rt|ht) p(ht|r1:t−1).

For nonlinear and non-Gaussian models, these integrals and distributions usually cannot be represented by a finite vector of means and covariances.

3. Replace the distribution with particles

At time t, approximate the filtering distribution by:

p(ht|r1:t) ≈ Σi=1N wt(i) δ(ht−ht(i)),

where:

  • ht(i) is particle i;
  • wt(i) is its normalized weight;
  • weights sum to 1.

The approximation can represent skewness, heavy tails and multimodality that a Gaussian filter would compress away.

4. Bootstrap particle filtering

The classic bootstrap filter uses the state transition as the proposal distribution.

  1. Start with particles representing p(ht−1|r1:t−1).
  2. Propagate each particle:

ht(i) ~ p(ht|ht−1(i)).

  1. Calculate an observation likelihood:

t(i) = p(rt|ht(i)).

  1. Update weights:

t(i) = wt−1(i)t(i).

  1. Normalize:

wt(i) = w̃t(i) / Σjt(j).

This is importance sampling performed sequentially through time.

5. Why weights collapse

After several updates, most particles may carry almost zero weight while one or two particles dominate.

This is weight degeneracy.

The filter may technically contain 10,000 particles while effectively behaving as if it contains only 20.

A common diagnostic is Effective Sample Size:

ESS = 1 / Σi=1N (wt(i))².

If all weights are equal, ESS = N. If one particle has all the weight, ESS = 1.

6. Resampling

Resampling draws a new equally weighted particle set from the current weighted empirical distribution.

Particles with large weights are copied more often. Low-weight particles disappear.

After resampling:

wt(i) = 1/N.

This restores weight balance but introduces another problem: duplicated particles reduce diversity.

7. Resampling is a trade-off

Resampling too rarely allows weight degeneracy.

Resampling at every step can create unnecessary sampling variance and particle impoverishment, especially when the state dynamics have low noise.

An adaptive rule often resamples only when:

ESS < cN

for a chosen threshold such as c = 0.5.

The threshold is a tuning choice, not a universal law.

8. Multinomial, systematic, stratified and residual resampling

Multinomial resampling is conceptually simplest but can have relatively high resampling variance.

Stratified resampling divides the unit interval into strata before drawing.

Systematic resampling uses one random offset and evenly spaced cumulative-probability locations.

Residual resampling assigns deterministic copies from the integer portions of expected offspring counts and samples only the remainder.

A validated implementation should specify which scheme is used because two filters with the same particle count but different resampling methods can have different Monte Carlo variability.

9. The proposal distribution controls efficiency

The bootstrap filter proposes states without looking at the new observation. When the observation is very informative, most proposed particles may land in regions with negligible likelihood.

A more efficient proposal uses information from rt:

q(ht|ht−1, rt).

The importance weight then becomes:

t(i) ∝ wt−1(i) [p(rt|ht(i))p(ht(i)|ht−1(i))] / q(ht(i)|ht−1(i),rt).

The closer the proposal is to the true filtering distribution, the more even the weights tend to be.

10. Auxiliary particle filters

The auxiliary particle filter introduced by Pitt and Shephard uses predictive information to favor ancestors likely to produce particles compatible with the next observation.

This is useful when the bootstrap proposal wastes many particles on implausible regions after a large observation shock.

But a more sophisticated proposal is only better if it is implemented correctly and its extra computational cost is justified.

11. Likelihood estimation comes almost for free

The predictive likelihood contribution is approximated by the average unnormalized weight before normalization.

Across time, the particle filter can estimate:

p(r1:T|θ) = ∏t p(rt|r1:t−1,θ).

The log-likelihood is a sum of log predictive likelihood estimates.

This makes particle filters useful not only for state tracking but also for parameter estimation and model comparison.

12. Log weights prevent numerical underflow

Observation likelihoods can be extremely small. Multiplying many small numbers can underflow.

Store log weights:

ai = log w̃i.

Normalize using log-sum-exp:

log Σ exp(ai) = m + log Σ exp(ai−m)

where m = max ai.

This is a computational necessity in long or stressed samples.

13. Monte Carlo likelihood noise matters

The particle likelihood estimate is random because it depends on simulated particles.

If too few particles are used, repeated runs at the same parameters can produce materially different log-likelihoods.

An optimizer can then chase simulation noise rather than the true likelihood surface.

Diagnostic: run the filter repeatedly at fixed parameters and measure the variance of the log-likelihood estimate.

14. Parameter estimation

Several approaches exist.

Simulated maximum likelihood: maximize the particle-filter likelihood estimate.

Particle marginal Metropolis–Hastings: embed an unbiased likelihood estimator inside an MCMC algorithm.

Particle MCMC: jointly handles parameters and latent states using particle-filter machinery.

SMC² and related methods: use nested sequential Monte Carlo for parameters and states.

The particle filter itself does not solve static-parameter uncertainty automatically; that is a separate inference layer.

15. Filtering versus smoothing

Filtering estimates the current hidden state using information up to the current time:

p(ht|r1:t).

Smoothing estimates past states using later observations:

p(ht|r1:T).

Particle smoothing can use ancestor tracing or backward-simulation methods.

As with hidden Markov models, smoothed histories are not valid substitutes for real-time filtered estimates.

16. Path degeneracy

Repeated resampling causes particle genealogies to coalesce. Far back in time, many current particles may share the same ancestor.

This is path degeneracy.

A filter can represent the current state well while representing historical trajectories poorly.

That matters for smoothing, path-dependent latent-state inference and parameter-learning algorithms.

17. The curse of dimensionality

Particle filters can represent complicated one- or few-dimensional states well, but performance can collapse as hidden-state dimension rises.

In high dimension, likelihood weight variation can become enormous and an impractically large particle count may be needed.

Rao–Blackwellization, localization, factorization and hybrid Kalman/particle approaches are possible responses.

“Nonlinear/non-Gaussian” does not mean particle filtering is automatically scalable.

18. Leverage effects

Financial volatility often reacts asymmetrically to negative and positive returns.

A stochastic-volatility model can correlate return shocks and volatility shocks:

Corr(εt, ηt) = ρ.

A particle filter can handle this dependence, but the propagation and observation density must be derived consistently.

If leverage is ignored, the model may systematically underestimate risk after negative returns and overestimate it after positive returns.

19. Heavy-tailed observations

Replacing Gaussian εt with a Student-t or mixture distribution can separate transient return outliers from persistent volatility changes.

Otherwise, the filter may interpret every extreme observation as evidence that latent variance has exploded.

Falsifier: compare state responses under Gaussian and heavy-tailed measurement models and evaluate out-of-sample density calibration.

20. Jumps and stochastic volatility

If prices contain jumps, a pure stochastic-volatility model may attribute jump observations to extreme latent volatility.

A richer state can include jump indicators or jump intensity, but dimensionality and identification become harder.

The right question is not whether a particle filter can represent the extra state. It can. The question is whether the data can identify it.

21. Inputs and outputs

Inputs can include:

  • state-transition density;
  • observation density;
  • parameter vector;
  • initial state distribution;
  • particle count;
  • proposal distribution;
  • resampling scheme;
  • ESS threshold;
  • random seed;
  • log-weight normalization rule;
  • missing-data policy;
  • smoothing configuration.

Outputs can include:

  • filtered particle cloud;
  • posterior mean/median/quantiles of volatility;
  • ESS time series;
  • resampling times;
  • predictive density;
  • likelihood estimate;
  • Monte Carlo standard errors across repeated runs;
  • smoothed states;
  • one-step and multi-step volatility forecasts;
  • particle genealogy diagnostics.

22. Evidence polarity

Evidence for confidence includes stable filtered estimates as particle count increases, reproducible likelihoods across independent seeds, ESS that does not collapse chronically, agreement with analytic Kalman benchmarks in linear-Gaussian test cases, sensible recovery of simulated latent states, calibrated out-of-sample predictive distributions and improvements over simpler volatility models.

Evidence against confidence includes constant resampling with very low ESS, strong seed dependence, likelihood variance large enough to disrupt optimization, particle impoverishment, unstable smoothed paths, implausible state explosions after isolated outliers, poor predictive calibration or a simpler GARCH/Kalman alternative that performs as well at far lower complexity.

23. Counterexample: 100 particles look smooth but are wrong

A small particle cloud can produce a visually smooth posterior mean while entirely missing a secondary mode or tail region.

Falsifier: rerun with 10× and 100× the particles. If the posterior quantiles or likelihood move materially, the original smooth chart was false precision.

24. Counterexample: resampling every step

Resampling at every date can duplicate a few successful particles repeatedly. With weak state noise, diversity collapses.

Falsifier: compare adaptive ESS-based resampling. If diversity improves without degrading filtering accuracy, the always-resample rule was unnecessarily destructive.

25. Counterexample: no resampling

Sequential importance sampling without resampling can leave almost all weights numerically zero after enough observations.

Falsifier: plot ESS through time. If ESS falls toward 1 and stays there, the nominal particle count is meaningless.

26. Counterexample: a large return shock

A bootstrap proposal samples latent volatility before looking at the new return. After a very large return, almost every proposed particle may imply an implausibly low volatility and receive negligible weight.

Falsifier: compare an auxiliary or observation-informed proposal. A dramatic reduction in weight variance identifies proposal mismatch as the weak link.

27. Counterexample: seed-sensitive likelihood optimization

Suppose parameter set A has a true likelihood only slightly above parameter set B, but particle noise is larger than that difference. An optimizer can repeatedly swap which parameter set appears better.

Falsifier: estimate log-likelihood variance at candidate optima and increase particles until ranking becomes stable.

28. Counterexample: hidden-state realism versus model fit

A complex particle-filter model can fit returns extremely well while producing latent-volatility paths that react implausibly or violate known economic constraints.

Likelihood is evidence, not the whole validation case.

29. Diagnostic ladder

  1. Unit-test on a linear-Gaussian model and compare with Kalman filtering.
  2. Simulate data with known latent states and test recovery.
  3. Plot ESS through time.
  4. Compare resampling schemes.
  5. Repeat with multiple seeds.
  6. Increase particle counts geometrically.
  7. Measure log-likelihood variance at fixed parameters.
  8. Inspect response to isolated outliers.
  9. Compare Gaussian and heavy-tailed observation models.
  10. Compare bootstrap and auxiliary proposals.
  11. Inspect particle genealogies for smoothing.
  12. Evaluate out-of-sample predictive density.
  13. Benchmark against GARCH or other simpler alternatives.

30. Connections to the surrounding Bukit Timah Tutor knowledge estate

The natural continuous-state benchmark is the site’s Kalman-filter article. Kalman filtering is exact for linear-Gaussian state-space models; particle filtering trades analytic exactness for flexibility.

Volatility dynamics connect to GARCH and EWMA, which observe variance through a deterministic recursion rather than a latent posterior distribution.

Simulation architecture connects to Monte Carlo pricing algorithms. Particle filtering is also Monte Carlo, but the particles are sequentially reweighted by data rather than simply averaged as independent pricing paths.

The full lane is indexed at Finance & Banking Algorithms | Applied Mathematics in Real Financial Systems.

31. What would falsify confidence?

Confidence should be withdrawn if results move materially with particle count or seed; if ESS collapses persistently; if likelihood noise overwhelms parameter differences; if the filter fails controlled simulated-state recovery; if outlier responses reveal misspecified observation tails; if smoothing suffers severe path degeneracy; or if a simpler alternative matches predictive performance.

32. Verification and update triggers

Preserve model equations, parameter values, proposal rule, particle count, resampling scheme, ESS threshold, random seed and software version for every run. Revalidate after changing the state dimension, observation family, leverage/jump specification, resampling algorithm, proposal density, particle count policy or numerical library.

Trigger review when ESS distribution deteriorates, likelihood variance rises, repeated runs diverge, volatility forecasts become poorly calibrated, new market regimes create systematic residual structure, smoothing becomes genealogy-limited or computational constraints force a smaller particle count.

33. Primary and high-quality references

Educational boundary: A particle cloud is a numerical approximation to a model-based posterior. It should not be confused with a direct observation of volatility or treated as reliable without particle-count, proposal, resampling and out-of-sample diagnostics.

Discover more from Bukit Timah Tutor

Subscribe now to keep reading and get access to the full archive.

Continue reading