Learn R Programming

pls (version 2.1-0)

crossval: Cross-validation of PLSR and PCR models

Description

A stand alone cross-validation function for mvr objects.

Usage

crossval(object, segments = 10,
         segment.type = c("random", "consecutive", "interleaved"),
         length.seg, jackknife = FALSE, trace = 15, ...)

Arguments

Value

  • The supplied object is returned, with an additional component validation, which is a list with components
  • methodeuqals "CV" for cross-validation.
  • predan array with the cross-validated predictions.
  • coefficients(only if jackknife is TRUE) an array with the jackknifed regression coefficients. The dimensions correspond to the predictors, responses, number of components, and segments, respectively.
  • PRESS0a vector of PRESS values (one for each response variable) for a model with zero components, i.e., only the intercept.
  • PRESSa matrix of PRESS values for models with 1, ..., ncomp components. Each row corresponds to one response variable.
  • adja matrix of adjustment values for calculating bias corrected MSEP. MSEP uses this.
  • segmentsthe list of segments used in the cross-validation.
  • ncompthe number of components.

encoding

latin1

Details

This function performs cross-validation on a model fit by mvr. It can handle models such as plsr(y ~ msc(X), ...) or other models where the predictor variables need to be recalculated for each segment. When recalculation is not needed, the result of crossval(mvr(...)) is identical to mvr(..., validation = "CV"), but slower.

Note that to use crossval, the data must be specified with a data argument when fitting object.

If segments is a list, the arguments segment.type and length.seg are ignored. The elements of the list should be integer vectors specifying the indices of the segments. See cvsegments for details.

Otherwise, segments of type segment.type are generated. How many segments to generate is selected by specifying the number of segments in segments, or giving the segment length in length.seg. If both are specified, segments is ignored.

If jackknife is TRUE, jackknifed regression coefficients are returned, which can be used for for variance estimation (var.jack) or hypothesis testing (jack.test).

When tracing is turned on, the segment number is printed for each segment.

References

Mevik, B.-H., Cederkvist, H. R. (2004) Mean Squared Error of Prediction (MSEP) Estimates for Principal Component Regression (PCR) and Partial Least Squares Regression (PLSR). Journal of Chemometrics, 18(9), 422--429.

See Also

mvr mvrCv cvsegments MSEP var.jack jack.test

Examples

Run this code
data(yarn)
yarn.pcr <- pcr(density ~ msc(NIR), 6, data = yarn)
yarn.cv <- crossval(yarn.pcr, segments = 10)
plot(MSEP(yarn.cv))

Run the code above in your browser using DataLab