mvr(formula, ncomp, data, subset, na.action,
method = c("kernelpls", "simpls", "oscorespls", "svdpc", "model.frame"),
scale = FALSE, validation = c("none", "CV", "LOO"),
model = TRUE, x = FALSE, y = FALSE, ...)
plsr(..., method = c("kernelpls", "simpls", "oscorespls", "model.frame"))
pcr(..., method = c("svdpc", "model.frame"))lm formula
constructs are supported. See below."model.frame", the model frame is returned.scale. If scale is TRUE, $X$ is scaled
by dividing each variable by its sample stTRUE, the model frame is returned.TRUE, the model matrix is returned.TRUE, the response is returned.mvrCv.method = "model.frame", the model frame is returned.
Otherwise, an object of class mvr is returned.
The object contains all components returned by the underlying fit
function. In addition, it contains the following components:mvrCv for details.na.action contains a vector with their indices. The
class of this vector is used by functions like fitted to
decide how to treat the observations.method for possible values.scale), the
scaling used.model = TRUE, the model frame.x = TRUE, the model matrix.y = TRUE, the model response.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.
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.
kernelpls.fit,
simpls.fit,
oscorespls.fit,
svdpc.fit,
mvrCv,
crossval,
loadings,
scores,
loading.weights,
coef.mvr,
predict.mvr,
R2,
MSEP,
RMSEP,
plot.mvrdata(NIR)
## Default methods:
NIR.pcr <- pcr(y ~ X, 6, data = NIR, validation = "CV")
NIR.pls <- plsr(y ~ X, 6, data = NIR, validation = "CV")
## Alternative methods:
NIR.oscorespls <- mvr(y ~ X, 6, data = NIR, validation = "CV",
method = "oscorespls")
NIR.simpls <- mvr(y ~ X, 6, data = NIR, validation = "CV",
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)Run the code above in your browser using DataLab