Skip to contents

Estimates the leave-future-out (LFO) information criterion for dynamite models using Pareto smoothed importance sampling.


lfo(x, ...)

# S3 method for dynamitefit
lfo(x, L, verbose = TRUE, k_threshold = 0.7, ...)



The model fit object.


Additional arguments passed to rstan::sampling() or cmdstanr::sample(), such as chains and cores (parallel_chains in cmdstanr).


Positive integer defining how many time points should be used for the initial fit.


If TRUE (default), print the progress of the LFO computations to the console.


Threshold for the Pareto k estimate triggering refit. Default is 0.7.


An lfo object which is a list with the following components:

  • ELPD
    Expected log predictive density estimate.

    Standard error of ELPD. This is a crude approximation which does not take into account potential serial correlations.

  • pareto_k
    Pareto k values.

  • refits
    Time points where model was re-estimated.

  • L
    L value used in the LFO estimation.

  • k_threshold
    Threshold used in the LFO estimation.


For multichannel models, the log-likelihoods of all channels are combined. For models with groups, expected log predictive densities (ELPDs) are computed independently for each group, but the re-estimation of the model is triggered if pareto k values of any group exceeds the threshold.


Paul-Christian Bürkner, Jonah Gabry, and Aki Vehtari (2020). Approximate leave-future-out cross-validation for Bayesian time series models, Journal of Statistical Computation and Simulation, 90:14, 2499-2523.

See also


data.table::setDTthreads(1) # For CRAN
# \donttest{
# Please update your rstan and StanHeaders installation before running
# on Windows
if (!identical(.Platform$OS.type, "windows")) {
  # this gives warnings due to the small number of iterations
  out <- suppressWarnings(
    lfo(gaussian_example_fit, L = 20, chains = 1, cores = 1)
#> Estimating model with 20 time points.
#> Estimating model with 22 time points.
#> Estimating model with 25 time points.
#> Estimating model with 27 time points.

# }