Switch unit tests from Travis to GitHub Actions. (#164)
Added Topi Paananen and Paul Bürkner as coauthors.
The log weights provided by the importance sampling functions
sis() no longer have the largest log ratio subtracted from them when returned to the user. This should be less confusing for anyone using the
weights() method to make an importance sampler. (#112, #146)
Added Mans Magnusson as a coauthor.
A smaller threshold is used when checking the uniqueness of tail values. (#124)
Use markdown syntax in roxygen documentation wherever possible. (#108)
New vignette on LOO for non-factorizable joint Gaussian models. (#75)
New vignette on “leave-future-out” cross-validation for time series models. (#90)
se_diff column in model comparison results. (#78)
r_eff=NA to suppress warning when specifying
r_eff is not applicable (i.e., draws not from MCMC). (#72)
Update effective sample size calculations to match RStan’s version. (#85)
Naming of k-fold helper functions now matches scikit-learn. (#96)
This is a major release with many changes. Whenever possible we have opted to deprecate rather than remove old functionality, but it is possible that old code that accesses elements inside loo objects by position rather than name may error.
New package documentation website http://mc-stan.org/loo/ with vignettes, function reference, news.
Updated existing vignette and added two new vignettes demonstrating how to use the package.
psislw() (now deprecated). This version implements the improvements to the PSIS algorithm described in the latest version of https://arxiv.org/abs/1507.02646. Additional diagnostic information is now also provided, including PSIS effective sample sizes.
weights() method for extracting smoothed weights from a
psis object. Arguments
normalize control whether the weights are returned on the log scale and whether they are normalized.
Updated the interface for the
loo() methods to integrate nicely with the new PSIS algorithm. Methods for log-likelihood arrays, matrices, and functions are provided. Several arguments have changed, particularly for the
loo.function method. The documentation at
help("loo") has been updated to describe the new behavior.
loo_model_weights() computes weights for model averaging as described in https://arxiv.org/abs/1704.02030. Implemented methods include stacking of predictive distributions, pseudo-BMA weighting or pseudo-BMA+ weighting with the Bayesian bootstrap.
options(loo.cores=...) is now deprecated in favor of
options(mc.cores=...). For now, if both the
mc.cores options have been set, preference will be given to
loo.cores until it is removed in a future release. (thanks to @cfhammill)
When comparing more than two models with
compare(), the first column of the output is now the
elpd difference from the model in the first row.
New helper functions for splitting observations for K-fold CV:
kfold_split_stratified(). Additional helper functions for implementing K-fold CV will be included in future releases.
E_loo()function for computing weighted expectations (means, variances, quantiles).
pareto_k_ids()convenience functions for quickly identifying problematic observations
(1, Inf)(didn’t used to include 0.7)
print.loo()shows a table of pareto k estimates (if any k > 0.7)
compare()to allow loo objects to be provided in a list rather than in
compare(). In previous versions of loo model weights were also reported by
compare(). We have removed the weights because they were based only on the point estimate of the elpd values ignoring the uncertainty. We are currently working on something similar to these weights that also accounts for uncertainty, which will be included in future versions of loo.
This update makes it easier for other package authors using loo to write tests that involve running the
loo function. It also includes minor bug fixes and additional unit tests. Highlights:
psislwfunction is called in an interactive session.
This update provides several important improvements, most notably an alternative method for specifying the pointwise log-likelihood that reduces memory usage and allows for loo to be used with larger datasets. This update also makes it easier to to incorporate loo’s functionality into other packages.
functionmethods for both
waic(). The matrix method provide the same functionality as in previous versions of loo (taking a log-likelihood matrix as the input). The function method allows the user to provide a function for computing the log-likelihood from the data and posterior draws (which are also provided by the user). The function method is less memory intensive and should make it possible to use loo for models fit to larger amounts of data than before.
label_pointsargument, which, if
TRUE, will label any Pareto
kpoints greater than 1/2 by the index number of the corresponding observation. The plot method also now warns about
kthat are not shown in the plot.
comparenow returns model weights and accepts more than two inputs.
options(loo.cores = NUMBER).
loo_and_waicfunction in favor of separate functions