Status of ABC-SMC samplers in Julia

Hi, I was wondering what is the current status of ABC samplers in Julia.

I have seen that GpABC.jl has a few options, but I was wondering if there are alternative packages with a special focus on SMC. I do not have something specific in mind, but I am currently exploring the available options - perhaps something like this but implemented within an active package.

1 Like

is probably worth taking a look at

2 Likes

That’s an option. I wonder whether Turing could also be used for ABC.

ABC is a misnomer IMHO. It’s just bayesian models using summary statistics as observations. So yes. Basically you run your forward model, calculate your summary statistics, and then

observed_summary ~ SomeKernel(computed_summary,...)

Typically Normal kernel.

In principle and for the simplest cases it is. How would you implement it with Turing? Also, do you know whether SMC is currently supported in that package?

Literally just this

Yes Turing does SMC of some sort. API

You basically do

sample(model,SMC(),...)

GitHub - mcreel/SimulatedNeuralMoments.jl: package for Bayesian and classical estimation and inference based on statistics that are filtered through a trained neural net is a registered package that uses Turing to sample chains, where the likelihood is the asymptotic Gaussian likelihood of the statistics. That’s very much like ABC, using a certain metric to compute loss. In the package, Turing sampling is done using AdvancedMH, because the likelihood is not differentiable, due to the use of simulation.

There are two examples included, one is SimulatedNeuralMoments.jl/examples/SV at main · mcreel/SimulatedNeuralMoments.jl · GitHub, to illustrate.

2 Likes

For a basic example of ABC using Turing, see ABC / MSM with Turing.jl

I’ve used KissABC.jl successfully in the past.

I implemented some ABC-SMC methods a while ago here, but I never found the time to clean it up further and make better use of the ecosystem (e.g. Turing).

1 Like