Performs a leave-one-out cross-validation of a predictive Co-Correspondence Analysis model.

crossval(y, x, n.axes = min(dim(x), dim(y)) - 1,
         centre = TRUE, verbose = TRUE)

<!-- %\method{print}{crossval}(x, digits = min(3, getOption("digits") - 3), \ldots) -->

# S3 method for crossval
summary(object, axes = c(1:min(6, object$n.axes)), ...)

Arguments

y

the response species matrix.

x

the predictor species matrix.

n.axes

the number of axes to calculate the leave-one-out cross-validation for. Default is to perform the CV for all extractable axes.

centre

centre y and x during analysis? Currently ignored as it may not be neccessary.

verbose

if TRUE, the default, print information on the progress of the cross-validation procedure.

object

an object of class crossval as returned by crossval.

axes

the number of axes to summarise results for.

...

further arguments to print - currently ignored.

Details

Performs a leave-one-out cross-validation of a predictive Co-Correspondence Analysis model. It can be slow depending on the number of columns in the matrices, and of course the number of sites.

Value

Returns a large list with the following components:

dimx, dimy

the dimensions of the input matrices x and y respectively.

press0

the \(press_0\) statistic.

n.axes

the number of axes tested.

CVfit

the cross-validatory fit.

varianceExp

list with components Yblock and Xblock containing the variances in the response and the predictor respectively, explained by each fitted PLS axis.

totalVar

list with components Yblock and Xblock containing the total variance in the response and the predictor respectively.

nam.dat

list with components namY and namX containing the names of the response and the predictor(s) respectively.

call

the R call used.

Author

Gavin L. Simpson, based on Matlab code by C.J.F. ter Braak and A.P. Schaffers.

Note

This function is not a bit out-of-date compared to some of the other functions. It should have a formular interface like coca or work on the results from coca, although that will have to be altered to store a copy of the data?

See also

The model fitting function coca

Examples

od <- options(digits = 4)
## load the data sets
data(beetles)
data(plants)

## log transform the bettle data
beetles <- log(beetles + 1)

## predictive CoCA using SIMPLS and formula interface
bp.pred <- coca(beetles ~ ., data = plants)
#> 
#> Removed some species that contained no data in: beetles, plants 
## should retain only the useful PLS components for a
## parsimonious model

## Leave-one-out crossvalidation - this takes a while
if (FALSE) {
crossval(beetles, plants)
}
## so 2 axes are sufficient
options(od)