BSL-package: Bayesian synthetic likelihood

BSL-packageR Documentation

Bayesian synthetic likelihood

Description

Bayesian synthetic likelihood (BSL, \insertCitePrice2018;textualBSL) is an alternative to standard, non-parametric approximate Bayesian computation (ABC). BSL assumes a multivariate normal distribution for the summary statistic likelihood and it is suitable when the distribution of the model summary statistics is sufficiently regular.

In this package, a Metropolis Hastings Markov chain Monte Carlo (MH-MCMC) implementation of BSL is available. We also include implementations of four methods (BSL, uBSL, semiBSL and BSLmisspec) and two shrinkage estimators (graphical lasso and Warton's estimator).

Methods: (1) BSL \insertCitePrice2018BSL, which is the standard form of Bayesian synthetic likelihood, assumes the summary statistic is roughly multivariate normal; (2) uBSL \insertCitePrice2018BSL, which uses an unbiased estimator to the normal density; (3) semiBSL \insertCiteAn2018BSL, which relaxes the normality assumption to an extent and maintains the computational advantages of BSL without any tuning; and (4) BSLmisspec \insertCiteFrazier2019BSL, which estimates the Gaussian synthetic likelihood whilst acknowledging that there may be incompatibility between the model and the observed summary statistic.

Shrinkage estimators are designed particularly to reduce the number of simulations if method is BSL or semiBSL: (1) graphical lasso \insertCiteFriedman2008BSL finds a sparse precision matrix with an L1-regularised log-likelihood. \insertCiteAn2019;textualBSL use graphical lasso within BSL to bring down the number of simulations significantly when the dimension of the summary statistic is high; and (2) Warton's estimator \insertCiteWarton2008BSL penalises the correlation matrix and is straightforward to compute. When using the Warton's shrinkage estimator, it is also possible to utilise the Whitening transformation \insertCiteKessy2018BSL to help decorrelate the summary statsitics, thus encouraging sparsity of the synthetic likelihood covariance matrix.

Parallel computing is supported through the foreach package and users can specify their own parallel backend by using packages like doParallel or doMC. The n model simulations required to estimate the synthetic likelihood at each iteration of MCMC will be distributed across multiple cores. Alternatively a vectorised simulation function that simultaneously generates n model simulations is also supported.

The main functionality is available through:

  • bsl: The general function to perform BSL, uBSL, or semiBSL (with or without parallel computing).

  • selectPenalty: A function to select the penalty when using shrinkage estimation within BSL or semiBSL.

Several examples have also been included. These examples can be used to reproduce the results of An et al. (2019), and can help practitioners learn how to use the package.

  • ma2: The MA(2) example from \insertCiteAn2019;textualBSL.

  • mgnk: The multivariate G&K example from \insertCiteAn2019;textualBSL.

  • cell: The cell biology example from \insertCitePrice2018;textualBSL and \insertCiteAn2019;textualBSL.

  • toad: The toad example from \insertCiteMarchand2017;textualBSL, and also considered in \insertCiteAn2018;textualBSL.

Extensions to this package are planned. For a journal article describing how to use this package, including full descriptions on the MA(2) and toad examples, see \insertCiteAn2022;textualBSL.

Author(s)

Ziwen An, Leah F. South and Christopher Drovandi

References

\insertAllCited

BSL documentation built on Nov. 3, 2022, 9:06 a.m.