termplot {stats} | R Documentation |
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")
if(requireNamespace("MASS", quietly = TRUE)) {
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")
}