Partial Least Squares and Principal Components Regression
Functions to perform partial least squares regression (PLSR) or principal components regression (PCR), with a formula interface. Cross-validation can be used. Prediction, model extraction, plot, print and summary methods exist.
mvr(formula, ncomp, data, subset, na.action, method = c("kernelpls", "simpls", "oscorespls", "svdpc"), validation = c("none", "CV", "LOO"), model = TRUE, x = FALSE, y = FALSE, ...) plsr(..., method = c("kernelpls", "simpls", "oscorespls")) pcr(..., method = "svdpc")
The functions fit PLSR or PCR models with 1, $\ldots$,
ncomp number of components. Multi-response models are fully
Three PLSR algorithms are available: the kernel algorithm, SIMPLS and
the classical orthogonal scores algorithm. One PCR algorithm is
available: using the singular value decomposition. The type of
regression is specified with the
are wrappers for
mvr, with different values for
validation = "CV", cross-validation is performed. The number and
type of cross-validation segments are specified with the arguments
validation = "LOO", leave-one-out cross-validation
is performed. It is an error to specify the segments when
validation = "LOO" is specified.
Note that the cross-validation is optimised for speed, and some
generality has been sacrificed. Especially, the model matrix is
calculated only once for the complete cross-validation, so models like
y ~ msc(X) will not be properly cross-validated. For proper
cross-validation of models where the model matrix must be
updated/regenerated for each segment, use the separate function
mvrreturns an object of class
mvr. The object contains all components returned by the underlying fit function. In addition, it contains the following components:
validation if validation was requested, the results of the cross-validation. See
ncomp the number of components of the model. method the method used to fit the model. See the argument
methodfor possible values.
call the function call. terms the model terms. model if
model = TRUE, the model frame.
x = TRUE, the model matrix.
y = TRUE, the model response.
Martens, H., N�s, T. (1989) Multivariate calibration. Chichester: Wiley.
data(NIR) ## Default methods: NIR.pcr <- pcr(y ~ X, 6, data = NIR, CV = TRUE) NIR.pls <- plsr(y ~ X, 6, data = NIR, CV = TRUE) ## Alternative methods: NIR.oscorespls <- mvr(y ~ X, 6, data = NIR, CV = TRUE, method = "oscorespls") NIR.simpls <- mvr(y ~ X, 6, data = NIR, CV = TRUE, method = "simpls") data(sensory) Pn <- scale(sensory$Panel) Ql <- scale(sensory$Quality) sens.pcr <- pcr(Ql ~ Pn, ncomp = 4) sens.pls <- plsr(Ql ~ Pn, ncomp = 4)