The Azimuth Project
Particle filter

Particle filter

Idea

Details

Using particle filters for system parameter estimation

Consider a stochastic system such as

x 0=f(θ 0,W 0) \mathbf{x}_0=f(\theta_0,W_0)
x t+1=h(g(θ 1,x t),θ 2,W t+1)\mathbf{x}_{t+1}=h(g(\theta_1,\mathbf{x}_{t}),\theta_2,W_{t+1})

where W iW_i denotes a fresh vector value drawn from uniform random process and ff, gg and hh are some specified functions (even just trivial functions such as, e.g., f(θ 0,W 0)=θ 0W 0f(\theta_0,W_0)=\theta_0 W_0). In this system there are both

  • parameters: values in the probabilistic evolution equations which are constant for a given instance of the system. In this case the θ i\theta_is are parameters.

  • state: random variables which evolve probabilistically from timestep to timestep, in this case the x i\mathbf{x}_i values.

The state is always unknown (in order to make temporal filtering the best approach) while the parameters may or may not be known. The case of unknown parameters often occurs naturally, e.g., consider an incredibly simplified toy example:

A species of nocturnal shrew is too clever to be seen by humans (except in rare cases) but its current population can be estimated from counting the number of droppings seen in a yearly survey (which is related to population but the count varies “randomly” due to, eg, some being made underground). Incredibly this shrew has a lifespan of just over 1 year and a pair of shrews have a variable number of offspring just before they die. For conservation planning one may want to know the fertility factor θ\theta of these shrews. The best way to do this is to find the value of the fertility factor which, when used in a temporal filter, leads to estimates of the population over time which then best reproduces the observations and residuals (possibly weighted by a Bayesian prior on the fertility). This system may be described by

x 0=α 0W 0\mathbf{x}_0=\lfloor \alpha_0 W_0\rfloor
x t+1=(θ+α 1(W t+10.5))x t/2\mathbf{x}_{t+1}=\lfloor (\theta+\alpha_1(W_{t+1}-0.5)) \mathbf{x}_{t}/2\rfloor

where x t\mathbf{x}_{t} is the current population. We assume parameters α i\alpha_i are known a priori but fertility factor θ\theta isn’t. (This simplified model clearly ignores important issues like male-female population split.)

Note in passing that the discontinous \lfloor\cdot\rfloors will make using an analytic filter, eg, a variety of Kalman filter?, unlikely to work well.

There are two obvious ways to perform this estimation with a particle filter, both starting from augmenting the state space with the parameter space (i.e., ξ=(θ,x)\xi=(\theta,\mathbf{x}) for parameters θΘ\theta\in\Theta and “actual state” xΩ\mathbf{x}\in\Omega.). These both have “issues”:

  1. Specify the evolution dynamics always leave the parameter component unchanged.

  2. The evolution dynamics allows a minor change in the parameter component.

References

  • TODO