Well, particle filtering is exactly the same. The equivalent of the particles are the random sampling of the wall with your hands around your current position. The information you are getting with your hands is the equivalent of the particles' importance weights.
Now, let's look at some equations. Each particle will be an hypothetical oil production profile evolving according to a stochastic Bass model (SBM):
Note that only the SBM growth rate (or adoption rate) will be a random variable. We also need to discretize the production growth so that it can only grow by a fix amount of oil (ex 0.1 Gb/year).
The particle filtering is an iterative procedure where each iteration is composed of the following four steps:
- Sampling step: we randomly choose N candidate particles from a proposal distribution (i.e. I choose random positions on the wall where to put my hands)
- Reweighting step: we weight each particle with an importance weight (i.e. do I feel something under my hands?)
- Resampling step: this step is optional but gives better results and avoid degeneracy of the particles.
- Filtering step: we finally compute a mean state based on the new particle set (Monte-Carlo integration)
The weighting step consists in assigning an importance weight to each particle according to their fit compared to the observed data:
where Prod(t) is the observed production at time t. One hurdle is how to extend the tracking for future production where there is no data available. For now, we simply replace the particle weights by an uniform weight which is equivalent to simulate a stochastic Bass model.
The resampling step consists in redistributing in place the initial set of particles according to their weight so that particles with bigger weights will be eventually duplicated. Once the particles have been resampled, we can estimate the mean state using a Monte-Carlo approach:
The two figures below give an example of curve tracking on the US production using N=1,000 particles (alpha=5e-5, m= 223 Gb). Because the growth rate is the only stochastic parameter it has to fluctuate widely in order to follow closely the oberved curve variations.
In summary, we are proposing to use a sequential Monte-Carlo Markov Chain for the modeling of the oil production.
- The algorithm allows for a dynamic adaptation of the production parameters (growth rate and URR) instead of a static and global view of the parameters as in traditional curve fitting.
- production shocks can be modeled.
- the underlying Markov process is still based on a logistic model but a stochastic one.
There are many improvements possible in particular around the design of the proposal distribution and the choice of the priors for the URR and the growth rate.
For a good overview on particle filtering techniques:
M. Sanjeev Arulampalam, Simon Maskell, Neil Gordon, and Tim Clapp, A Tutorial on Particle Filters for Online Nonlinear/Non-Gaussian Bayesian Tracking, IEEE TRANSACTIONS ON SIGNAL PROCESSING, VOL. 50, NO. 2, FEBRUARY 2002.
peak+oil bass+model US particle+filtering oil+production