# mvr

##### 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.

- Keywords
- multivariate, regression

##### Usage

```
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")
```

##### Details

The functions fit PLSR or PCR models with 1, $\ldots$,
`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`

.

##### Value

`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.

##### References

Martens, H., N�s, T. (1989) *Multivariate calibration.*
Chichester: Wiley.

##### See Also

`kernelpls.fit`

,
`simpls.fit`

,
`oscorespls.fit`

,
`svdpc.fit`

,
`mvrCv`

,
`loadings`

,
`scores`

,
`loading.weights`

,
`coef.mvr`

,
`predict.mvr`

,
`R2`

,
`MSEP`

,
`RMSEP`

##### Examples

```
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)
```

*Documentation reproduced from package pls, version 1.0-1, License: GPL version 2*