This package provides an implementation of the Adaptive Multiple Importance Sampling algorithm, as described in
Integrating geostatistical maps and infectious disease transmission models using adaptive multiple importance sampling. Renata Retkute, Panayiota Touloupou, María-Gloria Basáñez, T. Deirdre Hollingsworth and Simon E.F. Spencer (2021). Annals of Applied Statistics, 15 (4), 1980-1998. DOI https://doi.org/10.1214/21-AOAS1486
This repository contains the development version of the package.
Make sure you have the package devtools installed. Then
::install_github("drsimonspencer/AMISforInfectiousDiseases-dev") devtools
amis
is the main function of the package. It takes a
geostatistical map, a transmission model and a prior distribution for
parameters, and returns a list of objects that includes sampled
parameters and their associated weights in each location at each time
point.
<- AMISforInfectiousDiseases::amis(prevalence_map, transmission_model, prior, amis_params) amis_output
prevalence_map
: A matrix representing the
geostatistical map, with one row per pixel (if there is one time point);
or a list with matrices, each one representing the geostatistical map
for a time point.transmission_model
: A function implementing the model.
It can be anything, as long as it conforms to a specific interface. See
defining a model function.prior
: A list containing the functions dprior and
rprior (density and RNG, respectively).amis_params
: A list containing the parameters for the
AMIS algorithm, such as:
n_samples
: The number of sample parameters to draw at
each iteration.target_ess
: The target effective sample size.max_iters
: The maximum number of iterations.boundaries
: Lower and upper boundaries for
prevalences.boundaries_param
: Lower and upper boundaries for
parameters.log
: Logical indicating whether to work with log
weights.delete_induced_prior
: Logical indicating whether the
induced prior density is to be deleted in the update of weights.mixture_samples
: The number of samples drawn from the
weighted distribution to fit a new mixture to.df
: Degrees of freedom in the t-distributions, used
yield a heavy tailed proposal.delta
, sigma
, breaks
: Options
for density estimation used in the pseudo-likelihood and induced prior
density.seed
: Optional seed for the random number
generator.output_dir
: An optional string specifying the local
directory where to save outputs after each iteration of the
algorithm.initial_amis_vals
: Optional list of intermittent
outputs from a previous run.The amis
function expects its argument
model_func
to be a function with the following
interface
observables <- model_func(seeds, params, n_tims)
params
: A matrix of parameter values
(double
)seeds
: A vector of seeds (integer
)n_tims
: Number of time points
(integer
)Function model_func
is expected to run the model for
each pair (seed
, params
) and return the
corresponding values for the observable (e.g. infection
prevalence). params
must be a matrix with ncols equal to
the dimension of the parameter space and the output must be a matrix
with ncols equal to the number of observed timepoints
n_tims
.