ABC Parameter Inference

ABC Overview

Approximate Bayesian Computation (ABC) is a collection of methods for likelihood free model parameter inference.

Simulation based Rejection ABC

The most basic variant of ABC is referred to as Rejection ABC. The user-defined inputs to this algorithm include:

The pseudocode for simulation-based Rejection ABC in GpABC looks as follows:

This algorithm is implemented by Julia function SimulatedABCRejection.

Emulation based Rejection ABC

Some models are computationally expensive to simulate. Simulation based ABC for such models would take unreasonably long time to accept enough posterior particles.

To work around this issue, GpABC provides emulation based Rejection ABC. Rather than simulating the model for each sampled particle, this algorithm runs a small number of simulations in the beginning, and uses their results to train the emulator.

User-defined inputs for this algorithm are very similar to those for Simulation based Rejection ABC:

The pseudocode for emulation-based Rejection ABC in GpABC looks as follows:

This algorithm is implemented by Julia function EmulatedABCRejection.

Simulation based ABC - SMC

This sophisticated version of ABC allows to specify a schedule of thresholds, as opposed to just a single value. A number of simulation based ABC iterations are then executed, one iteration per threshold. The posterior of the preceding iteration serves as a prior to the next one.

The user-defined inputs to this algorithm are similar to those of Simulation based Rejection ABC:

The pseudocode for simulation-based ABC-SMC in GpABC looks as follows:

This algorithm is implemented by Julia function SimulatedABCSMC.

Emulation based ABC - SMC

Similarly to Simulation based ABC - SMC, Emulation based Rejection ABC has an SMC counterpart. A threshold schedule must be supplied for this algorithm. A number of emulation based ABC iterations are then executed, one iteration per threshold. The posterior of the preceding iteration serves as a prior to the next one. Depending on user-defined settings, either the same emulator can be re-used for all iterations, or the emulator could be re-trained for each iteration.

The user-defined inputs to this algorithm are similar to those of Emulation based Rejection ABC:

The pseudocode for emulation-based ABC-SMC in GpABC looks as follows:

This algorithm is implemented by Julia function EmulatedABCSMC.

References