termplot
Plot Regression Terms
Description
Plots regression terms against their predictors, optionally with standard errors and partial residuals added.
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 |
envir | environment in which variables in |
partial.resid | logical; should partial residuals be plotted? |
rug | add rugplots (jittered 1-d histograms) to the axes? |
terms | which terms to plot (default |
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 |
col.term, lwd.term | color and line width for the ‘term curve’, see |
col.se, lty.se, lwd.se | color, line type and line width for the ‘twice-standard-error curve’ when |
col.res, cex, pch | color, plotting character expansion and type for partial residuals, when |
ask | logical; if |
use.factor.levels | Should x-axis ticks use factor levels or numbers for factor terms? |
smooth |
|
lty.smth, col.smth, span.smth | Passed to |
ylim | an optional range for the y axis, or |
plot | if set to |
transform.x | logical vector; if an element (recycled as necessary) is |
... | 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 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
.
Examples
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")
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.