termplot

0th

Percentile

Plot Regression Terms

Plots regression terms against their predictors, optionally with standard errors and partial residuals added.

Keywords
hplot, regression
Usage
termplot(model, data = NULL, envir = environment(formula(model)),
         partial.resid = FALSE, rug = FALSE,
         terms = NULL, se = FALSE,
         xlabs = NULL, ylabs = NULL, main = NULL,
         col.term = 2, lwd.term = 1.5,
         col.se = "orange", lty.se = 2, lwd.se = 1,
         col.res = "gray", cex = 1, pch = par("pch"),
         col.smth = "darkred", lty.smth = 2, span.smth = 2/3,
         ask = dev.interactive() && nb.fig < n.tms,
         use.factor.levels = TRUE, smooth = NULL, ylim = "common",
         plot = TRUE, transform.x = FALSE, …)
Arguments
model
fitted model object
data
data frame in which variables in model can be found
envir
environment in which variables in model can be found
partial.resid
logical; should partial residuals be plotted?
rug
add rugplots (jittered 1-d histograms) to the axes?
terms
which terms to plot (default NULL means all terms); a vector passed to predict(.., type = "terms", terms = *).
se
plot pointwise standard errors?
xlabs
vector of labels for the x axes
ylabs
vector of labels for the y axes
main
logical, or vector of main titles; if TRUE, the model's call is taken as main title, NULL or FALSE mean no titles.
col.term, lwd.term
color and line width for the ‘term curve’, see lines.
col.se, lty.se, lwd.se
color, line type and line width for the ‘twice-standard-error curve’ when se = TRUE.
col.res, cex, pch
color, plotting character expansion and type for partial residuals, when partial.resid = TRUE, see points.
ask
logical; if TRUE, the user is asked before each plot, see par(ask=.).
use.factor.levels
Should x-axis ticks use factor levels or numbers for factor terms?
smooth
NULL or a function with the same arguments as panel.smooth to draw a smooth through the partial residuals for non-factor terms
lty.smth, col.smth, span.smth
Passed to smooth
ylim
an optional range for the y axis, or "common" when a range sufficient for all the plot will be computed, or "free" when limits are computed for each plot.
plot
if set to FALSE plots are not produced: instead a list is returned containing the data that would have been plotted.
transform.x
logical vector; if an element (recycled as necessary) is TRUE, partial residuals for the corresponding term are plotted against transformed values. The model response is then a straight line, allowing a ready comparison against the data or against the curve obtained from smooth-panel.smooth.
other graphical parameters.
Details

The model object must have a predict method that accepts type = "terms", e.g., glm in the stats package, coxph and survreg in the survival">https://CRAN.R-project.org/package=survival package. For the partial.resid = TRUE option model must have a residuals method that accepts type = "partial", which lm and glm do. The data argument should rarely be needed, but in some cases termplot may be unable to reconstruct the original data frame. Using na.action=na.exclude makes these problems less likely. Nothing sensible happens for interaction terms, and they may cause errors. The plot = FALSE option is useful when some special action is needed, e.g. to overlay the results of two different models or to plot confidence bands.

Value

For plot = FALSE, a list with one element for each plot which would have been produced. Each element of the list is a data frame with variables x, y, and optionally the pointwise standard errors se. For continuous predictors x will contain the ordered unique values and for a factor it will be a factor containing one instance of each level. The list has attribute "constant" copied from the predicted terms object. Otherwise, the number of terms, invisibly.

See Also

For (generalized) linear models, plot.lm and predict.glm.

Aliases
  • termplot
Examples
library(stats) require(graphics) had.splines <- "package:splines" %in% search() if(!had.splines) rs <- require(splines) x <- 1:100 z <- factor(rep(LETTERS[1:4], 25)) y <- rnorm(100, sin(x/10)+as.numeric(z)) model <- glm(y ~ ns(x, 6) + z) par(mfrow = c(2,2)) ## 2 x 2 plots for same model : termplot(model, main = paste("termplot( ", deparse(model$call)," ...)")) termplot(model, rug = TRUE) termplot(model, partial.resid = TRUE, se = TRUE, main = TRUE) termplot(model, partial.resid = TRUE, smooth = panel.smooth, span.smth = 1/4) if(!had.splines && rs) detach("package:splines") ## requires recommended package MASS hills.lm <- lm(log(time) ~ log(climb)+log(dist), data = MASS::hills) termplot(hills.lm, partial.resid = TRUE, smooth = panel.smooth, terms = "log(dist)", main = "Original") termplot(hills.lm, transform.x = TRUE, partial.resid = TRUE, smooth = panel.smooth, terms = "log(dist)", main = "Transformed")
Documentation reproduced from package stats, version 3.3.3, License: Part of R 3.3.3

Community examples

Looks like there are no examples yet.