mvr {pls} | R Documentation |
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")
formula |
a model formula. Most of the lm formula
constructs are supported. |
ncomp |
the number of components to include in the model (see below). |
data |
an optional data frame with the data to fit the model from. |
subset |
an optional vector specifying a subset of observations to be used in the fitting process. |
na.action |
a function which indicates what should happen when the data contain missing values. |
method |
the multivariate regression method to be used. |
validation |
character. What kind of (internal) validation to use. See below. |
model |
a logical. If TRUE , the model frame is returned. |
x |
a logical. If TRUE , the model matrix is returned. |
y |
a logical. If TRUE , the response is returned. |
... |
additional arguments, passed to the underlying fit
functions, and mvrCv . |
The functions fit PLSR or PCR models with 1, ...,
ncomp
number of components. Multi-response models are fully
supported.
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 method
argument. pcr
and plsr
are wrappers for mvr
, with different values for method
.
If validation = "CV"
, cross-validation is performed. The number and
type of cross-validation segments are specified with the arguments
segments
and segment.type
. See mvrCv
for
details. If 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
crossval
.
mvr
returns 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 mvrCv for details. |
ncomp |
the number of components of the model. |
method |
the method used to fit the model. See the argument
method for possible values. |
call |
the function call. |
terms |
the model terms. |
model |
if model = TRUE , the model frame. |
x |
if x = TRUE , the model matrix. |
y |
if y = TRUE , the model response. |
Ron Wehrens and Bjørn-Helge Mevik
Martens, H., Næs, T. (1989) Multivariate calibration. Chichester: Wiley.
kernelpls.fit
,
simpls.fit
,
oscorespls.fit
,
svdpc.fit
,
mvrCv
,
loadings
,
scores
,
loading.weights
,
coef.mvr
,
predict.mvr
,
R2
,
MSEP
,
RMSEP
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)