predict.mvr {pls} | R Documentation |
Predict Method for PLSR and PCR
Description
Prediction for mvr (PCR, PLSR) models. New responses or scores are predicted using a fitted model and a new matrix of observations.
Usage
## S3 method for class 'mvr'
predict(
object,
newdata,
ncomp = 1:object$ncomp,
comps,
type = c("response", "scores"),
na.action = na.pass,
...
)
Arguments
object |
an |
newdata |
a data frame. The new data. If missing, the training data is used. |
ncomp , comps |
vector of positive integers. The components to use in the prediction. See below. |
type |
character. Whether to predict scores or response values |
na.action |
function determining what should be done with missing
values in |
... |
further arguments. Currently not used |
Details
When type
is "response"
(default), predicted response values
are returned. If comps
is missing (or is NULL
), predictions
for length(ncomp)
models with ncomp[1]
components,
ncomp[2]
components, etc., are returned. Otherwise, predictions for
a single model with the exact components in comps
are returned.
(Note that in both cases, the intercept is always included in the
predictions. It can be removed by subtracting the Ymeans
component
of the fitted model.)
When type
is "scores"
, predicted score values are returned for
the components given in comps
. If comps
is missing or
NULL
, ncomps
is used instead.
It is also possible to supply a matrix instead of a data frame as
newdata
, which is then assumed to be the X
data matrix. Note
that the usual checks for the type of the data are then omitted. Also note
that this is only possible with predict
; it will not work in
functions like predplot
, RMSEP
or
R2
, because they also need the response variable of the new
data.
Value
When type
is "response"
, a three dimensional array of
predicted response values is returned. The dimensions correspond to the
observations, the response variables and the model sizes, respectively.
When type
is "scores"
, a score matrix is returned.
Note
A warning message like ‘'newdata' had 10 rows but variable(s)
found have 106 rows’ means that not all variables were found in the
newdata
data frame. This (usually) happens if the formula contains
terms like yarn$NIR
. Do not use such terms; use the data
argument instead. See mvr
for details.
Author(s)
Ron Wehrens and Bjørn-Helge Mevik
See Also
mvr
, summary.mvr
,
coef.mvr
, plot.mvr
Examples
data(yarn)
nir.mvr <- mvr(density ~ NIR, ncomp = 5, data = yarn[yarn$train,])
## Predicted responses for models with 1, 2, 3 and 4 components
pred.resp <- predict(nir.mvr, ncomp = 1:4, newdata = yarn[!yarn$train,])
## Predicted responses for a single model with components 1, 2, 3, 4
predict(nir.mvr, comps = 1:4, newdata = yarn[!yarn$train,])
## Predicted scores
predict(nir.mvr, comps = 1:3, type = "scores", newdata = yarn[!yarn$train,])