saABC: Summary statistic construction by semi-automatic ABC

Description Usage Arguments Details Value Author(s) References Examples

View source: R/saABC.R


saABC fits parameter estimators based on simulated data to be used as summary statistics within ABC. Fitting is by linear regression. Some simple diagnostics are provided for assistance.


saABC(theta, X, plot = TRUE)



A n x d matrix or data frame of simulated parameter values. theta[i,j] is the ith simulated value of parameter j.


A n x p matrix or data frame of simulated data and/or associated transformations. X[i,] is a vector of the data for parameter values theta[i,]. A constant term should not be included.


When plot==TRUE, a plot of parameter values against fitted values is produced for each parameter as a side-effect.


The semi-automatic ABC method of Fearnhead and Prangle (2012) is as follows:

1) Simulate parameter vectors theta_i and corresponding data sets x_i for i=1,2,...,N.

2) Use the simulations to fit an estimator of each parameter as a linear combination of f(x), where f(x) is a vector of transformations of x (including a constant term).

3) Run ABC using these simulations.

The saABC function automates step 2 of this process. The user must supply simulated parameter values theta and corresponding f(x) values x (n.b. excluding the constant term). The function returns weights for the linear combinations which can easily be used for step 3. In particular, fitted weights are returned as a matrix of weights for the columns of x and a vector of constants. The vector can usually be discarded, as it is not needed to find differences between summary statistics.

The function also returns BIC values for each parameter so that the user can judge the quality of the fits, and compare different choices of f(x). Diagnostic plots of supplied parameter values against fitted values are also optionally provided. These are useful for exploratory purposes when there are a small number of parameters, but provide less protection from overfitting than BIC values.



Vector of constant terms from fitted regressions.


Matrix of weights from fitted regressions.


Vector of BIC values for each fitted regression.


Dennis Prangle


Blum, M. G. B, Nunes, M. A., Prangle, D. and Sisson, S. A. (2013) A comparative review of dimension reduction methods in approximate Bayesian computation. Stat. Sci. 28, Issue 2, 189–208.

Fearnhead, P. and Prangle, D. (2012) Constructing summary statistics for approximate Bayesian computation: semi-automatic approximate Bayesian computation. J. R. Stat. Soc. B 74, Part 3, 1–28.

Nunes, M. A. and Prangle, D. (2016) abctools: an R package for tuning approximate Bayesian computation analyses. The R Journal 7, Issue 2, 189–205.


theta <- matrix(runif(2E3),ncol=2)
colnames(theta) <- c("Mean", "Variance")

X <- replicate(5, rnorm(1E3, theta[,1], theta[,2]))

saABC(theta, X)$BICs
saABC(theta, cbind(X, X^2))$BICs ##Variance parameter estimated better 

Example output

Loading required package: abc
Loading required package:
Loading required package: nnet
Loading required package: quantreg
Loading required package: SparseM

Attaching package: 'SparseM'

The following object is masked from 'package:base':


Loading required package: MASS
Loading required package: locfit
locfit 1.5-9.1 	 2013-03-22
Loading required package: abind
Loading required package: parallel
Loading required package: plyr
Loading required package: Hmisc
Loading required package: lattice
Loading required package: survival

Attaching package: 'survival'

The following object is masked from 'package:quantreg':


Loading required package: Formula
Loading required package: ggplot2

Attaching package: 'Hmisc'

The following objects are masked from 'package:plyr':

    is.discrete, summarize

The following object is masked from 'package:quantreg':


The following objects are masked from 'package:base':

    format.pval, round.POSIXt, trunc.POSIXt, units

 abctools: A package with tools for ABC inference

 --- Written by Matt Nunes and Dennis Prangle---
   Current package version:  1.1.1  ( 2017-04-19 ) 

 abctools 1.1.1 loaded

     Mean  Variance 
-421.8430  446.0156 
      Mean   Variance 
-401.38215  -64.52758 

abctools documentation built on May 29, 2017, 12:42 p.m.