The Equivalent Weights Particle Filter - for data assimilation

Introduction to particle filters and the significance of the Equivalent-Weight Particle Filter in geophysical science

An online course for PhD students and early stage researchers developed by Bethan Perkins (Assimila), Peter Jan van Leeuwen (NCEO), Melanie Ades (NCEO), Azin Howells (University of Reading) and Guy Griffiths (University of Reading) for the European Space Agency Data Assimilation Projects.


A particle filter is a data assimilation technique. This means that it’s a method of combining observations of a system with a model of how that system works to give scientists and engineers the best possible estimate for the true state of the system.

Particle Filters are a relatively new method of data assimilation. There are numerous variants of particle filters – all with their merits and deficiencies – but the Equivalent-Weights Particle Filter is the only one that works well for systems with extremely high dimensions, so is most useful for geophysical scientists.

On these pages you will find many resources to help you learn about Particle Filters in general and the Equivalent-Weights Particle Filter specifically. There is an interactive demo of Particle Filters with accompanying exercises. And there is a set of light-hearted reading material which gives a non-technical introduction to Particle Filters and works through to provide more mathematical descriptions of the principles behind the Equivalent Weights Particle Filter.

Why do we need Particle Filters?

There are a variety of different techniques for performing data assimilation, including Kalman Filters and Variational techniques; each of these techniques have their own merits. The strength of the particle filter is that it works well on assimilating data from non-linear systems.

Other data assimilation techniques are applied to the Earth’s non-linear environmental system, but generally assumptions and simplifications are made to translate non-linear equations into more simple linear ones and deal with those. Previously, the relatively low resolution of climate models has meant that these assumptions and simplifications have been perfectly reasonable and errors due to simplifications have been far outweighed by the increase in speed.

But as model resolutions increase it becomes increasingly important to account for non-linearity in the data assimilation process. Particle filters are designed for non-linear situations. The model equations are not simplified at all and no assumptions are made about the distribution of model results. There are other compromises which are made for the sake of this but – generally speaking – once a non-linear data assimilation method is essential then these compromises are worth the cost.

What is a Particle Filter?

Particle Filters are a particular way of treating model ensembles. An ensemble is a set of model simulations of the same system e.g. many simulations of the weather all covering the same time and the geographical place; each model in the ensemble, however, is slightly different to the others, usually either in terms of boundary conditions or model calculations and parameterisations. These differences show us the sensitivity of the model to these small changes and give us an idea of the most likely outcomes.

Particle filters are essentially ensemble model simulations (where “particle” means “ensemble member”). The added value of a particle filter is in how the model results are collected and assimilated with observational data before the model is carried forward to simulate the system until the time of the next observation.

How do Particle filters work?

The light-hearted story downloadable from the link on the RHS of this page will answer this question.

There are many different types of particle filters, each are useful in different circumstances. The type of Particle filter that we’re pioneering at NCEO is the Equivalent Weights Particle Filter. This advanced filter is a third evolutionary step from the basic particle filter. We talk through these evolutionary steps in the explanatory story.


Exercise 1

We begin by studying the behaviour of the standard particle filter with resampling. We will do identical twin experiments in which the model is run 100 time steps to generate the ‘truth’. This true run is observed every 5 time steps. To each observations we add a random perturbation representing measurement noise, drawn from a Gaussian distribution with variance = 0:1.

  • Select the “Standard Particle Filter” model. Run this with default values.
    The program produces several plots:

    • Figure 1: The evolution of the true model run (black), the observations (red) with their error bars, and the mean of the particle trajectories (blue)
    • Figure 2a: A histogram of particle positions at time 0.
    • Figure 2b: A histogram of particle positions at time T/2.
    • Figure 2c: A histogram of particle positions at time T.
    • Figure 3: The squared difference between the mean of the ensemble and the true run.
    • Figure 4: The effective number of particles.
    • Figure 5: A rank histogram of the particle weights.

    Have a look at all the figures and make sure you understand what they are showing.

    Have a look at Figure 4. Why is it not a good sign that the number of effective particles is close to one? Combine this with figure 2b. Is the ensemble degenerate?

    What is your conclusion from the rank histogram?

  • Increase the number of particles to 1000
    What can you say about the convergence of the standard particle filter? Is the filter doing better in e.g. Figure 1, the time evolution?
  • Change the variance of the observations to 1.0
    Can you explain the differences with the other runs? Specifically, why are there more effective particles?
  • To test the rank histogram we need more statistics. To this end, run the model for 1000 steps
    What do you conclude from the rank histogram?
  • Play with the other model variables and study the results of the standard particle filter

Exercise 2

As we have seen in the previous exercises, the standard particle filter is not very efficient when the observation error is small. The Equivalent-Weights Particle Filter is designed to improve on that.

  1. Run the Equivalent-Weight Particle Filter with default settings/
    Make sure you understand the figures. Why are there more effective particles in than in the standard filter? Is the filter degenerate? Why, or why not?
  2. Rerun the model with 1000 particles
    Do you see improvement?
  3. To test the rank histogram run the model for 1000 time steps
    What is your conclusion?
  4. Change the relaxation strength and see what happens.
  5. The default is that 90% of the particles is retained in the equivalent weights step. Change that parameter to 0.6 (60%)
    What does this mean? Do you see what you expected? Try also reducing the particles retained down to 0.3
  6. Play with the other model variables and study the results for the Equivalent-Weights P.F.