mvr
.mvrCv(X, Y, ncomp,
method = c("kernelpls", "simpls", "oscorespls", "svdpc"), scale = FALSE,
segments = 10, segment.type = c("random", "consecutive", "interleaved"),
length.seg, trace = FALSE, ...)
NA
s and Inf
s are not
allowed.NA
s and Inf
s
are not allowed.TRUE
, the learning $X$ data for each
segment is scaled by dividing each variable by its sample standard
deviation. The prediction data is scaled by the same amount.segments
is a list.segments
unless
segments
is a list.TRUE
, the segment number is printed
for each segment."CV"
for cross-validation.ncomp
components. Each row corresponds to one response variable.MSEP
uses this.ncomp
components. Each row corresponds to one response variable.pcr
, plsr
or mvr
with the
argument validation
set to "CV"
or "LOO"
. All
arguments to mvrCv
can be specified in the generic function call. If segments
is a list, the arguments segment.type
and
length.seg
are ignored. The elements of the list should be
integer vectors specifying the indices of the segments. See
cvsegments
for details.
Otherwise, segments of type segment.type
are generated. How
many segments to generate is selected by specifying the number of
segments in segments
, or giving the segment length in
length.seg
. If both are specified, segments
is
ignored.
X
and Y
do not need to be centered.
The R2 component returned is calculated as the squared correlation
between the cross-validated predictions and the responses.
Note that this function cannot be used in situations where $X$
needs to be recalculated for each segment (except for scaling by the
standard deviation), for instance with
msc
or other preprocessing. For such models, use the more
general (but slower) function crossval
.
Also note that if needed, the function will silently(!) reduce
ncomp
to the maximal number of components that can be
cross-validated, which is $n - l - 1$, where $n$ is the
number of observations and $l$ is the length of the longest
segment. The (possibly reduced) number of components is returned as
the component ncomp
.
mvr
crossval
cvsegments
MSEP
data(NIR)
NIR.pcr <- pcr(y ~ X, 6, data = NIR, validation = "CV", segments = 10)
plot(MSEP(NIR.pcr))
Run the code above in your browser using DataLab