Functions to plot predicted values against measured values for a fitted model.
predplot(object, ...)# S3 method for default
predplot(object, ...)
# S3 method for mvr
predplot(
object,
ncomp = object$ncomp,
which,
newdata,
nCols,
nRows,
xlab = "measured",
ylab = "predicted",
main,
ask = nRows * nCols < nPlots && dev.interactive(),
...,
font.main,
cex.main
)
predplotXy(
x,
y,
line = FALSE,
labels,
type = "p",
main = "Prediction plot",
xlab = "measured response",
ylab = "predicted response",
line.col = par("col"),
line.lty = NULL,
line.lwd = NULL,
...
)
The functions invisibly return a matrix with the (last) plotted data.
a fitted model.
further arguments sent to underlying plot functions.
integer vector. The model sizes (numbers of components) to use for prediction.
character vector. Which types of predictions to plot. Should
be a subset of c("train", "validation", "test")
. If not specified,
plot.mvr
selects test set predictions if newdata
is supplied,
otherwise cross-validated predictions if the model has been cross-validated,
otherwise fitted values from the calibration data.
data frame. New data to predict.
integer. The number of coloumns and rows the plots will
be laid out in. If not specified, plot.mvr
tries to be intelligent.
titles for \(x\) and \(y\) axes. Typically character
strings, but can be expressions or lists. See title
for
details.
optional main title for the plot. See Details.
logical. Whether to ask the user before each page of a plot.
font to use for main titles. See par
for
details. Also see Details below.
numeric. The magnification to be used for main titles relative to the current size. Also see Details below.
numeric vector. The observed response values.
numeric vector. The predicted response values.
logical. Whether a target line should be drawn.
optional. Alternative plot labels to use. Either a vector of
labels, or "names"
or "numbers"
to use the row names or row
numbers of the data as labels.
character. What type of plot to make. Defaults to "p"
(points). See plot
for a complete list of types. The
argument is ignored if labels
is specified.
character or numeric. The col
,
lty
and lwd
parametres for the target line. See
par
for details.
Ron Wehrens and Bjørn-Helge Mevik
predplot
is a generic function for plotting predicted versus measured
response values, with default and mvr
methods currently implemented.
The default method is very simple, and doesn't handle multiple responses or
new data.
The mvr
method, handles multiple responses, model sizes and types of
predictions by making one plot for each combination. It can also be called
through the plot method for mvr
, by specifying plottype =
"prediction"
(the default).
The argument main
can be used to specify the main title of the plot.
It is handled in a non-standard way. If there is only on (sub) plot,
main
will be used as the main title of the plot. If there is
more than one (sub) plot, however, the presence of main
will
produce a corresponding ‘global’ title on the page. Any graphical
parametres, e.g., cex.main
, supplied to coefplot
will only
affect the ‘ordinary’ plot titles, not the ‘global’ one. Its
appearance can be changed by setting the parameters with par
,
which will affect both titles (with the exception of font.main
and cex.main
, which will only affect the ‘global’ title when
there is more than one plot). (To have different settings for the two
titles, one can override the par
settings with arguments to
predplot
.)
predplotXy
is an internal function and is not meant for interactive
use. It is called by the predplot
methods, and its arguments, e.g,
line
, can be given in the predplot
call.
mvr
, plot.mvr
data(yarn)
mod <- plsr(density ~ NIR, ncomp = 10, data = yarn[yarn$train,], validation = "CV")
if (FALSE) {
predplot(mod, ncomp = 1:6)
plot(mod, ncomp = 1:6) # Equivalent to the previous
## Both cross-validated and test set predictions:
predplot(mod, ncomp = 4:6, which = c("validation", "test"),
newdata = yarn[!yarn$train,])
}
data(oliveoil)
mod.sens <- plsr(sensory ~ chemical, ncomp = 4, data = oliveoil)
if (FALSE) plot(mod.sens, ncomp = 2:4) # Several responses gives several plots
Run the code above in your browser using DataLab