Prediction Plots

Functions to plot predicted values against measured values for a fitted model.

multivariate, hplot, regression
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, …)

a fitted model.


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.

nCols, nRows

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


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.

line.col, line.lty, line.lwd

character or numeric. The col, lty and lwd parametres for the target line. See par for details.

further arguments sent to underlying plot functions.


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.


The functions invisibly return a matrix with the (last) plotted data.


The font.main and cex.main must be (completely) named. This is to avoid that any argument cex or font matches them.

Tip: If the labels specified with labels are too long, they get clipped at the border of the plot region. This can be avoided by supplying the graphical parameter xpd = TRUE in the plot call.

See Also

mvr, plot.mvr

  • predplot
  • predplot.default
  • predplot.mvr
  • predplotXy
mod <- plsr(density ~ NIR, ncomp = 10, data = yarn[yarn$train,], validation = "CV")
# }
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,])
# }
mod.sens <- plsr(sensory ~ chemical, ncomp = 4, data = oliveoil)
# }
plot(mod.sens, ncomp = 2:4) # Several responses gives several plots
# }
Documentation reproduced from package pls, version 2.7-2, License: GPL-2

Community examples

Looks like there are no examples yet.