Summary statistics selection for ABC inference using estimated posterior error.
stage2(obs, param, sumstats, obspar = NULL, init.best, dsets = 100,
sumsubs = 1:ncol(sumstats), limit = length(sumsubs), do.only=NULL,
do.err = FALSE, final.dens = FALSE, ...)
A list with the following components:
the best subset of statistics.
the indices of the dsets
simulated datasets closest to the oberved dataset as measured by the init.best
subset of summaries.
simulation error (if obspar
is supplied and do.err=TRUE
).
the subsets considered during the algorithm (same as the input do.only
.
an array of dimension nacc x npar x ndatasets
giving the posterior sample for each observed dataset. Not returned if final.dens=FALSE
.
an index into the subsets considered during the algorithm.
observed summary statistics.
matrix of simulated model parameter values.
matrix of simulated summary statistics.
optional observed parameters (for use to assess simulation performance).
an initial estimate of the best summary statistics subset. Can be either an index into the summaries combination table (see combmat
) or a vector of indices into 1:nstats
. See details.
the number of simulated datasets to treat as observed when estimating the posterior error. See details.
an optional index into the summary statistics to limit summary selection to a specific subset of summaries.
an optional integer indicating whether to limit summary selection to subsets of a maximum size.
an optional index into the summary statistics combination table. Can be used to limit entropy calculations to certain summary statistics subsets only.
a boolean value indicating whether the simulation error should be returned. Note: if do.err=TRUE
, obspar
must be supplied.
a boolean value indicating whether the posterior sample should be returned.
any other optional arguments to the ABC inference procedure (e.g. arguments to the abc
function).
Matt Nunes
This function is computationally intensive due to its cyclic ABC inference procedure.
The function uses the init.best
set of summaries to determine the dsets
simulated datasets which are closest (in Euclidean norm) to the observed dataset. Since the model parameters generating the summary statistics are known for these simulated datasets, for each candidate subset of summary statistics, we can compute the error under ABC inference for each of these datasets. The best subset of summary statistics is that which minimizes this (average) error over all dsets
datasets.
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.
Nunes, M. A. and Balding, D. J. (2010) On Optimal Selection of Summary
Statistics for Approximate Bayesian Computation.
Stat. Appl. Gen. Mol. Biol. 9, Iss. 1, Art. 34.
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.
# load example data:
data(coal)
data(coalobs)
param<-coal[,2]
simstats<-coal[,5:8]
# use matrix below just in case to preserve dimensions.
obsstats<-matrix(coalobs[1,5:8],nrow=1)
obsparam<-matrix(coalobs[1,1])
if (FALSE) {
tmp<-stage2(obsstats, param, simstats, init.bes=c(1,3), dsets = 10)
tmp$best
}
Run the code above in your browser using DataLab