R/importance_sampling.R
importance_sampling.Rd
A parent class for different importance sampling methods.
importance_sampling(log_ratios, method, ...)
# S3 method for array
importance_sampling(
log_ratios,
method,
...,
r_eff = 1,
cores = getOption("mc.cores", 1)
)
# S3 method for matrix
importance_sampling(
log_ratios,
method,
...,
r_eff = 1,
cores = getOption("mc.cores", 1)
)
# S3 method for default
importance_sampling(log_ratios, method, ..., r_eff = 1)
An array, matrix, or vector of importance ratios on the log scale (for PSIS-LOO these are negative log-likelihood values). See the Methods (by class) section below for a detailed description of how to specify the inputs for each method.
The importance sampling method to use. The following methods are implemented:
Arguments passed on to the various methods.
Vector of relative effective sample size estimates containing
one element per observation. The values provided should be the relative
effective sample sizes of 1/exp(log_ratios)
(i.e., 1/ratios
).
This is related to the relative efficiency of estimating the normalizing
term in self-normalizing importance sampling. If r_eff
is not
provided then the reported PSIS effective sample sizes and Monte Carlo
error estimates can be over-optimistic. If the posterior draws are (near)
independent then r_eff=1
can be used. r_eff
has to be a scalar (same
value is used for all observations) or a vector with length equal to the
number of observations. The default value is 1. See the relative_eff()
helper function for computing r_eff
.
The number of cores to use for parallelization. This defaults to
the option mc.cores
which can be set for an entire R session by
options(mc.cores = NUMBER)
. The old option loo.cores
is now
deprecated but will be given precedence over mc.cores
until
loo.cores
is removed in a future release. As of version
2.0.0 the default is now 1 core if mc.cores
is not set, but we
recommend using as many (or close to as many) cores as possible.
Note for Windows 10 users: it is strongly
recommended to avoid using
the .Rprofile
file to set mc.cores
(using the cores
argument or
setting mc.cores
interactively or in a script is fine).