Sequential Monte Carlo - Approximate Bayesian Computation - Lotka–Volterra Example

Hello all,
I am really confused about the Sequential Monte Carlo - Approximate Bayesian Computation - Lotka–Volterra Example ( Link - Approximate Bayesian Computation — PyMC example gallery) here. For SMC -ABC we need a sequence of population generation that sequentially generates particle populations of size 𝑁, sampling in generation 𝑡 from a perturbation of accepted particles in generation t -1 via sampling from a successively improved posterior approximation, thus allowing for gradually reduce an acceptance threshold 𝜀1 > 𝜀2 > … 𝜀T > 0 on the permitted distance, while maintaining high acceptance rates. That means we have to choose a sequence of populations for implementation. I can only see that we can change the value of epsilon and the number of that example. Can anyone help me with which SMC- ABC version is coded in the Lotka-Volterra model?

anyone ???

@aloctavodia may be able to chime in

1 Like

epsilon is the scaling parameter for the distance functions. Once defined by the user, that’s constant. What is gradually reduced, automatically, is the temperature (actually we change the inverse temperature from 0 to 1). Here you can read a few more details and examples 8. Approximate Bayesian Computation — Bayesian Modeling and Computation in Python

1 Like

@aloctavodia Thanks so much for the reply. I read all of the documents. Still, I have some confusion.

(1) So the SMC - ABC is coded here with the basic versions of the SMC algorithm right? Can I get a reference to the SMC paper where the algorithm is described and used here to code in the Lotka - Volterra example? I saw a couple of cited papers about SMC but don’t know which version of SMC is used to write the Lotka-Volterra code.

(2) Also, is it possible to get the step-by-step combined SMC - ABC algorithm that is implemented in the Lotka- Volterra model? I saw the algorithm for SMC and ABC separately but I am asking for the exact combined algorithm for SMC -ABC. Any reference papers will also help.


PyMC’s SMC algorithm is based on the papers listed in the docs, altought the exact algorithm is not described in any paper.

Algorithms are independent of examples/models, so there is no paper describing SMC for Lotka-Volterra example.

SMC-ABC is inplemented as an extension of SMC. The inference algorithm is the same the main difference is the use of a Simulator, a special Rv which represent an approximation to a likelihood. There is no single paper we follow
to implement the Simulator.

@aloctavodia Thank for your reply!
I do see a warning when I passed the kernal=“ABC” in to the
line pm.sample_smc(kernel=“ABC”). I got this warning —
FutureWarning: The kernel string argument “ABC” in sample_smc has been deprecated. It is no longer needed to distinguish between abc and metropolis

can you please tell me why I got this warning? Isn’t the ABC is not working properly inside pm.sample_smc?

It’s working fine, the message just says you don’t beed to specify an abc kernel