loo: Leave-one-out cross-validation

View source: R/loo.R

looR Documentation

Leave-one-out cross-validation


Computes the RMSE/log-likelihood based on leave-one-out cross-validation.


loo(object, type = c("loglik", "rmse"), ...)



a fitted object model, currently only lm/glm is accepted.


the criterion to use, given as a character string, either "rmse" for Root-Mean-Square Error or "loglik" for log-likelihood.


other arguments are currently ignored.


Leave-one-out cross validation is a K-fold cross validation, with K equal to the number of data points in the set N. For all i from 1 to N, the model is fitted to all the data except for i-th row and a prediction is made for that value. The average error is computed and used to evaluate the model.


A single numeric value of RMSE or mean log-likelihood.


Kamil Bartoń, based on code by Carsten Dormann


Dormann, C. et al. 2018 Model averaging in ecology: a review of Bayesian, information-theoretic, and tactical approaches for predictive inference. Ecological Monographs 88, 485–504.


fm <- lm(y ~ X1 + X2 + X3 + X4, Cement)
loo(fm, type = "l")
loo(fm, type = "r")

## Compare LOO_RMSE and AIC/c
options(na.action = na.fail)
dd <- dredge(fm, rank = loo, extra = list(AIC, AICc), type = "rmse")
plot(loo ~ AIC, dd, ylab = expression(LOO[RMSE]), xlab = "AIC/c")
points(loo ~ AICc, data = dd, pch = 19)
legend("topleft", legend = c("AIC", "AICc"), pch = c(1, 19))

MuMIn documentation built on March 31, 2023, 8:33 p.m.