loo_subsample {loo} | R Documentation |
Efficient approximate leave-one-out cross-validation (LOO) using subsampling, so that less costly and more approximate computation is made for all LOO-fold, and more costly and accurate computations are made only for m<N LOO-folds.
Description
Efficient approximate leave-one-out cross-validation (LOO) using subsampling, so that less costly and more approximate computation is made for all LOO-fold, and more costly and accurate computations are made only for m<N LOO-folds.
Usage
loo_subsample(x, ...)
## S3 method for class ''function''
loo_subsample(
x,
...,
data = NULL,
draws = NULL,
observations = 400,
log_p = NULL,
log_g = NULL,
r_eff = 1,
save_psis = FALSE,
cores = getOption("mc.cores", 1),
loo_approximation = "plpd",
loo_approximation_draws = NULL,
estimator = "diff_srs",
llgrad = NULL,
llhess = NULL
)
Arguments
x |
A function. The Methods (by class) section, below, has detailed descriptions of how to specify the inputs. |
data , draws , ... |
For |
observations |
The subsample observations to use. The argument can take four (4) types of arguments:
|
log_p , log_g |
Should be supplied only if approximate posterior draws are
used. The default ( |
r_eff |
Vector of relative effective sample size estimates for the
likelihood ( |
save_psis |
Should the |
cores |
The number of cores to use for parallelization. This defaults to
the option
|
loo_approximation |
What type of approximation of the loo_i's should be used?
The default is
As point estimates of |
loo_approximation_draws |
The number of posterior draws used when
integrating over the posterior. This is used if |
estimator |
How should
|
llgrad |
The gradient of the log-likelihood. This
is only used when |
llhess |
The Hessian of the log-likelihood. This is only used
with |
Details
The loo_subsample()
function is an S3 generic and a methods is
currently provided for log-likelihood functions. The implementation works
for both MCMC and for posterior approximations where it is possible to
compute the log density for the approximation.
Value
loo_subsample()
returns a named list with class c("psis_loo_ss", "psis_loo", "loo")
. This has the same structure as objects returned by
loo()
but with the additional slot:
-
loo_subsampling
: A list with two vectors,log_p
andlog_g
, of the same length containing the posterior density and the approximation density for the individual draws.
Methods (by class)
-
loo_subsample(`function`)
: A functionf()
that takes argumentsdata_i
anddraws
and returns a vector containing the log-likelihood for a single observationi
evaluated at each posterior draw. The function should be written such that, for each observationi
in1:N
, evaluatingf(data_i = data[i,, drop=FALSE], draws = draws)
results in a vector of length
S
(size of posterior sample). The log-likelihood function can also have additional arguments butdata_i
anddraws
are required.If using the function method then the arguments
data
anddraws
must also be specified in the call toloo()
:-
data
: A data frame or matrix containing the data (e.g. observed outcome and predictors) needed to compute the pointwise log-likelihood. For each observationi
, thei
th row ofdata
will be passed to thedata_i
argument of the log-likelihood function. -
draws
: An object containing the posterior draws for any parameters needed to compute the pointwise log-likelihood. Unlikedata
, which is indexed by observation, for each observation the entire objectdraws
will be passed to thedraws
argument of the log-likelihood function. The
...
can be used if your log-likelihood function takes additional arguments. These arguments are used like thedraws
argument in that they are recycled for each observation.
-
References
Magnusson, M., Riis Andersen, M., Jonasson, J. and Vehtari, A. (2019). Leave-One-Out Cross-Validation for Large Data. In Thirty-sixth International Conference on Machine Learning, PMLR 97:4244-4253.
Magnusson, M., Riis Andersen, M., Jonasson, J. and Vehtari, A. (2020). Leave-One-Out Cross-Validation for Model Comparison in Large Data. In Proceedings of the 23rd International Conference on Artificial Intelligence and Statistics (AISTATS), PMLR 108:341-351.