Function to plot the regression coefficients of an mvr
object.
coefplot(
object,
ncomp = object$ncomp,
comps,
intercept = FALSE,
separate = FALSE,
se.whiskers = FALSE,
nCols,
nRows,
labels,
type = "l",
lty,
lwd = NULL,
pch,
cex = NULL,
col,
legendpos,
xlab = "variable",
ylab = "regression coefficient",
main,
pretty.xlabels = TRUE,
xlim,
ylim,
ask = nRows * nCols < nPlots && dev.interactive(),
...
)
an mvr
object. The fitted model.
vector of positive integers. The components to plot.
See coef.mvr
for details.
logical. Whether coefficients for the intercept should be
plotted. Ignored if comps
is specified. Defaults to FALSE
.
See coef.mvr
for details.
logical. If TRUE
, coefficients for different model
sizes are blotted in separate plots.
logical. If TRUE
, whiskers at plus/minus 1
estimated standard error are added to the plot. This is only available if
the model was cross-validated with jackknife = TRUE
. Also, in the
current implementation, intercept
must be FALSE
, and
separate
must be TRUE
if length(ncomp) > 1
.
integer. The number of coloumns and rows the plots will
be laid out in. If not specified, coefplot
tries to be intelligent.
optional. Alternative \(x\) axis labels. See Details.
character. What type of plot to make. Defaults to "l"
(lines). Alternative types include "p"
(points) and "b"
(both). See plot
for a complete list of types.
vector of line types (recycled as neccessary). Line types can be
specified as integers or character strings (see par
for the
details).
vector of positive numbers (recycled as neccessary), giving the width of the lines.
plot character. A character string or a vector of single
characters or integers (recycled as neccessary). See points
for all alternatives.
numeric vector of character expansion sizes (recycled as neccessary) for the plotted symbols.
character or integer vector of colors for plotted lines and
symbols (recycled as neccessary). See par
for the details.
Legend position. Optional. Ignored if separate
is
TRUE
. If present, a legend is drawn at the given position. The
position can be specified symbolically (e.g., legendpos =
"topright"
). This requires >= 2.1.0. Alternatively, the position can be
specified explicitly (legendpos = t(c(x,y))
) or interactively
(legendpos = locator()
). This only works well for plots of
single-response models.
titles for \(x\) and \(y\) axes. Typically character
strings, but can be expressions (e.g., expression(R^2)
or lists. See
title
for details.
optional main title for the plot. See Details.
logical. If TRUE
, coefplot
tries to
plot the \(x\) labels more nicely. See Details.
optional vector of length two, with the \(x\) or \(y\) limits of the plot.
logical. Whether to ask the user before each page of a plot.
Further arguments sent to the underlying plot functions.
Ron Wehrens and Bjørn-Helge Mevik
coefplot
handles multiple responses by making one plot for each
response. If separate
is TRUE
, separate plots are made for
each combination of model size and response. The plots are laid out in a
rectangular fashion.
If legendpos
is given, a legend is drawn at the given position
(unless separate
is TRUE
).
The argument labels
can be a vector of labels or one of
"names"
and "numbers"
. The labels are used as \(x\) axis
labels. If labels
is "names"
or "numbers"
, the
variable names are used as labels, the difference being that with
"numbers"
, the variable names are converted to numbers, if possible.
Variable names of the forms "number" or "number text" (where
the space is optional), are handled.
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. (To have different settings for the
two titles, one can override the par
settings with arguments to
coefplot
.)
The argument pretty.xlabels
is only used when labels
is
specified. If TRUE
(default), the code tries to use a
‘pretty’ selection of labels. If labels
is "numbers"
,
it also uses the numerical values of the labels for horisontal spacing. If
one has excluded parts of the spectral region, one might therefore want to
use pretty.xlabels = FALSE
.
When separate
is TRUE
, the arguments lty
, col
,
and pch
default to their par()
setting. Otherwise, the
default for all of them is 1:nLines
, where nLines
is the
number of model sizes specified, i.e., the length of ncomp
or
comps
.
The function can also be called through the mvr
plot method by
specifying plottype = "coefficients"
.
data(yarn)
mod.nir <- plsr(density ~ NIR, ncomp = 8, data = yarn)
if (FALSE) {
coefplot(mod.nir, ncomp = 1:6)
plot(mod.nir, plottype = "coefficients", ncomp = 1:6) # Equivalent to the previous
## Plot with legend:
coefplot(mod.nir, ncom = 1:6, legendpos = "bottomright")
}
data(oliveoil)
mod.sens <- plsr(sensory ~ chemical, ncomp = 4, data = oliveoil)
if (FALSE) coefplot(mod.sens, ncomp = 2:4, separate = TRUE)
Run the code above in your browser using DataLab