## SMC^2 algorithm for state-space models

Hi again,

With Nicolas Chopin and Omiros Papaspiliopoulos, we’ve just submitted a paper called *SMC^2: a sequential Monte Carlo algorithm with particle Markov chain Monte Carlo updates*. You can read the article online on arXiv here.

This algorithm allows to estimate the parameters in a state space models, without any assumptions of linearity or gaussianity. Usually in this context, parameter estimation was done by EM algorithms, which give point estimates, or by the Gibbs sampling, which is likely to converge veeeryyy slowly considering the dimension of the hidden states. However the recent Particle Markov Chain Monte Carlo method of Andrieu, Doucet and Holenstein allows to do exact Bayesian inference for these models, as well as state filtering, using a clever mix of SMC and MCMC.

Our algorithm adds a few things compared to the PMCMC by “making it fully SMC”: it allows for sequential estimation, ie if you get new data you can update your previous estimates without having to restart the algorithm from the beginning, it is more likely to capture multiple modes in case the posterior distribution is multimodal, and it allows the sequential estimation of the model evidence, which can be used for model selection. On top of that it allows sequential filtering and smoothing of the hidden states, all of which under parameter uncertainty.

Since the first arXival in January we’ve changed quite a lot of things, including a new numerical section. The former examples are still available in supplementary material, that I’ll put online soon. Our new examples include a quite sophisticated multi factor stochastic volatility model with leverage, that we applied on the S&P 500 data set, and a state-space model for extreme values that we apply to athletics records, in order to compute the probability of beating a previous world record, ie assessing the likelihood of a rare event.

The code used to produce the numerical results is available as a python package on google code:

http://code.google.com/p/py-smc2/

This package has a few dependencies, incluging python, numpy, scipy, and a C compiler like gcc. To plot the figures you need R and the ggplot2 library. All of those are free software and in the repositories of common GNU/Linux distributions like Ubuntu or Fedora.

Enjoy!

UPDATE: I’ve uploaded the slides I’ve presented this morning in an internal seminar, here they are:

SMC² « Xi'an's Ogsaid, on 12 March 2011 at 16:53[…] Pierre Jacob, along with Nicolas Chopin and Omiros Papaspiliopoulos, completed a massive work on SMC², a sequential Monte Carlo method that builds on the particle MCMC discussion paper of Andrieu, Doucet and Hollenstein. The major advance is to incorporate sequential requirements within the pMCMC scheme for processing state space models, […]

A few days in Bordeaux « Statisfactionsaid, on 9 April 2011 at 17:55[…] in their working group, a joint work with Nicolas Chopin and Omiros Papaspiliopoulos about which I’ve blogged before. I’m already very grateful to the ALEA team for this […]

BISP7 in Madrid « Statisfactionsaid, on 1 September 2011 at 13:59[…] am going to talk (for a very short 15 minutes) about SMC^2 (arXiv link, google code link) on Saturday. Looking at the conference’s program, I am […]