
The cv package for R provides a consistent and extensible framework for cross-validating standard R statistical models. Some of the functions supplied by the package:
cv() is a generic function with a default method,
computationally efficient "lm" and "glm"
methods, an "rlm" method (for robust linear models), and a
method for a list of competing models. There are also
"merMod", "lme", and "glmmTMB"
methods for mixed-effects models. cv() supports parallel
computations.
mse() (mean-squared error), rmse()
(root-mean-squared error), medAbsErr() (median absolute
error), and BayesRule() are cross-validation criteria
(“cost functions”), suitable for use with cv().
cv() also can cross-validate a selection procedure
(such as the following) for a regression model:
cvModelList() employs CV to select a model from
among a number of candidates, and then cross-validates this
model-selection procedure.
selectStepAIC() is a predictor-selection procedure
based on the stepAIC() function in the
MASS package.
selectTrans() is a procedure for selecting predictor
and response transformations in regression, based on the
powerTransform() function in the car
package.
selectTransStepAIC() is a procedure that first
selects predictor and response transformations and then selects
predictors.
For additional introductory information on using the
cv package, see the “Cross-validating
regression models” vignette
(vignette("cv", package="cv")). There are also vignettes on
cross-validating
mixed-effects models
(vignette("cv-mixed", package="cv")), cross-validating
model selection
(vignette("cv-selection", package="cv")), and computational
and technical notes
(vignette("cv-notes", package="cv")). The
cv package is designed to be extensible to other
classes of regression models, other CV criteria, and other
model-selection procedures; for details, see the “Extending
the cv package” vignette
(vignette("cv-extend", package="cv")).
To install the current version of the cv package from CRAN:
install.packages("cv")
To install the development version of the cv package from GitHub:
if (!require(remotes)) install.packages("remotes")
remotes::install_github("gmonette/cv", build_vignettes=TRUE,
dependencies=TRUE)