The functions fit PLSR or PCR models with 1, $\ldots$,
ncomp
number of components. Multi-response models are fully
supported. The type of model to fit is specified with the method
argument. Four PLSR algorithms are available: the kernel algorithm
("kernelpls"
), the wide kernel algorithm ("widekernelpls"
),
SIMPLS ("simpls"
) and the classical
orthogonal scores algorithm ("oscorespls"
). One PCR algorithm
is available: using the singular value decomposition ("svdpc"
).
If method
is "model.frame"
, the model frame is returned.
The functions pcr
and plsr
are wrappers for mvr
,
with different values for method
.
The formula
argument should be a symbolic formula of the form
response ~ terms
, where response
is the name of the
response vector or matrix (for multi-response models) and terms
is the name of one or more predictor matrices, usually separated by
+
, e.g., water ~ FTIR
or y ~ X + Z
. See
lm
for a detailed description. The named
variables should exist in the supplied data
data frame or in
the global environment. Note: Do not use mvr(mydata$y ~
mydata$X, ...)
, instead use mvr(y ~ X, data = mydata,
...)
. Otherwise, predict.mvr
will not work properly.
The chapter Statistical models in R of the manual An
Introduction to R distributed with Ris a good reference on
formulas in R.
The number of components to fit is specified with the argument
ncomp
. It this is not supplied, the maximal number of
components is used (taking account of any cross-validation).
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. However,
scaling requested by scale = TRUE
is 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
.