Moment matching algorithm for updating a loo object when Pareto k estimates are large.
loo_moment_match(x, ...)# S3 method for default
loo_moment_match(
x,
loo,
post_draws,
log_lik_i,
unconstrain_pars,
log_prob_upars,
log_lik_i_upars,
max_iters = 30L,
k_threshold = NULL,
split = TRUE,
cov = TRUE,
cores = getOption("mc.cores", 1),
...
)
The loo_moment_match() methods return an updated loo object. The
structure of the updated loo object is similar, but the method also
stores the original Pareto k diagnostic values in the diagnostics field.
A fitted model object.
Further arguments passed to the custom functions documented above.
A loo object to be modified.
A function the takes x as the first argument and returns
a matrix of posterior draws of the model parameters.
A function that takes x and i and returns a matrix (one
column per chain) or a vector (all chains stacked) of log-likelihood draws
of the ith observation based on the model x. If the draws are obtained
using MCMC, the matrix with MCMC chains separated is preferred.
A function that takes arguments x, and pars and
returns posterior draws on the unconstrained space based on the posterior
draws on the constrained space passed via pars.
A function that takes arguments x and upars and
returns a matrix of log-posterior density values of the unconstrained
posterior draws passed via upars.
A function that takes arguments x, upars, and i
and returns a vector of log-likelihood draws of the ith observation based
on the unconstrained posterior draws passed via upars.
Maximum number of moment matching iterations. Usually this
does not need to be modified. If the maximum number of iterations is
reached, there will be a warning, and increasing max_iters may improve
accuracy.
Threshold value for Pareto k values above which the moment
matching algorithm is used. The default value is 1 - 1 / log10(S),
where S is the sample size.
Logical; Indicate whether to do the split transformation or not at the end of moment matching for each LOO fold.
Logical; Indicate whether to match the covariance matrix of the
samples or not. If FALSE, only the mean and marginal variances are
matched.
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).
loo_moment_match(default): A default method that takes as arguments a
user-specified model object x, a loo object and user-specified
functions post_draws, log_lik_i, unconstrain_pars, log_prob_upars,
and log_lik_i_upars.
The loo_moment_match() function is an S3 generic and we provide a
default method that takes as arguments user-specified functions
post_draws, log_lik_i, unconstrain_pars, log_prob_upars, and
log_lik_i_upars. All of these functions should take .... as an argument
in addition to those specified for each function.
Paananen, T., Piironen, J., Buerkner, P.-C., Vehtari, A. (2021). Implicitly adaptive importance sampling. Statistics and Computing, 31, 16. doi:10.1007/s11222-020-09982-2. arXiv preprint arXiv:1906.08850.
loo(), loo_moment_match_split()
# See the vignette for loo_moment_match()
Run the code above in your browser using DataLab