coefplot {coefplot} | R Documentation |
Plotting Model Coefficients
Description
Provides an S3 generic method for plotting coefficients from a model so it can be extended to other model types.
A graphical display of the coefficients and standard errors from a fitted model
coefplot
is the S3 generic method for plotting the coefficients from a fitted model.
This can be extended with new methods for other types of models not currently available.
Coefplot method for workflow objects
Coefplot method for parsnip objects
Usage
coefplot(model, ...)
## Default S3 method:
coefplot(
model,
title = "Coefficient Plot",
xlab = "Value",
ylab = "Coefficient",
innerCI = 1,
outerCI = 2,
lwdInner = 1 + interactive * 2,
lwdOuter = if (interactive) 1 else unname((Sys.info()["sysname"] != "Windows") * 0.5),
pointSize = 3 + interactive * 5,
color = "blue",
shape = 16,
cex = 0.8,
textAngle = 0,
numberAngle = 0,
zeroColor = "grey",
zeroLWD = 1,
zeroType = 2,
facet = FALSE,
scales = "free",
sort = c("natural", "magnitude", "alphabetical"),
decreasing = FALSE,
numeric = FALSE,
fillColor = "grey",
alpha = 1/2,
horizontal = FALSE,
factors = NULL,
only = NULL,
shorten = TRUE,
intercept = TRUE,
interceptName = "(Intercept)",
coefficients = NULL,
predictors = NULL,
strict = FALSE,
trans = identity,
interactive = FALSE,
newNames = NULL,
plot = TRUE,
...
)
## S3 method for class 'lm'
coefplot(...)
## S3 method for class 'glm'
coefplot(...)
## S3 method for class 'workflow'
coefplot(model, ...)
## S3 method for class 'model_fit'
coefplot(model, ...)
## S3 method for class 'rxGlm'
coefplot(...)
## S3 method for class 'rxLinMod'
coefplot(...)
## S3 method for class 'rxLogit'
coefplot(...)
Arguments
model |
A parsnip object |
... |
All arguments are passed on to |
title |
The name of the plot, if NULL then no name is given |
xlab |
The x label |
ylab |
The y label |
innerCI |
How wide the inner confidence interval should be, normally 1 standard deviation. If 0, then there will be no inner confidence interval. |
outerCI |
How wide the outer confidence interval should be, normally 2 standard deviations. If 0, then there will be no outer confidence interval. |
lwdInner |
The thickness of the inner confidence interval |
lwdOuter |
The thickness of the outer confidence interval |
pointSize |
Size of coefficient point |
color |
The color of the points and lines |
shape |
The shape of the points |
cex |
The text size multiplier, currently not used |
textAngle |
The angle for the coefficient labels, 0 is horizontal |
numberAngle |
The angle for the value labels, 0 is horizontal |
zeroColor |
The color of the line indicating 0 |
zeroLWD |
The thickness of the 0 line |
zeroType |
The type of 0 line, 0 will mean no line |
facet |
logical; If the coefficients should be faceted by the variables, numeric coefficients (including the intercept) will be one facet. Currently not available. |
scales |
The way the axes should be treated in a faceted plot. Can be c("fixed", "free", "free_x", "free_y"). Currently not available. |
sort |
Determines the sort order of the coefficients. Possible values are c("natural", "magnitude", "alphabetical") |
decreasing |
logical; Whether the coefficients should be ascending or descending |
numeric |
logical; If true and factors has exactly one value, then it is displayed in a horizontal graph with continuous confidence bounds. Currently not available. |
fillColor |
The color of the confidence bounds for a numeric factor. Currently not available. |
alpha |
The transparency level of the numeric factor's confidence bound. Currently not available. |
horizontal |
logical; If the plot should be displayed horizontally. Currently not available. |
factors |
Vector of factor variables that will be the only ones shown |
only |
logical; If factors has a value this determines how interactions are treated. True means just that variable will be shown and not its interactions. False means interactions will be included. |
shorten |
logical or character; If |
intercept |
logical; Whether the Intercept coefficient should be plotted |
interceptName |
Specifies name of intercept it case it is not the default of "(Intercept"). |
coefficients |
A character vector specifying which factor coefficients to keep. It will keep all levels and any interactions, even if those are not listed. |
predictors |
A character vector specifying which coefficients to keep. Each individual coefficient can be specified. Use predictors to specify entire factors. |
strict |
If TRUE then predictors will only be matched to its own coefficients, not its interactions |
trans |
A transformation function to apply to the values and confidence intervals. |
interactive |
If |
newNames |
Named character vector of new names for coefficients |
plot |
logical; If the plot should be drawn, if false then a data.frame of the values will be returned |
Details
Currently, methods are available for lm, glm and rxLinMod objects.
For more information on this function and it's arguments see coefplot.default
Pulls model element out of workflow object then calls coefplot
.
Pulls model element out of parsnip object then calls coefplot
.
Value
A ggplot2 object or data.frame. See details in coefplot.lm
for more information
If plot
is TRUE
then a ggplot
object is returned. Otherwise a data.frame
listing coefficients and confidence bands is returned.
A ggplot object. See coefplot.lm
for more information.
A ggplot object. See coefplot.lm
for more information.
A ggplot object. See coefplot.lm
for more information.
Methods (by class)
-
default
: Default method -
lm
:lm
-
glm
:glm
-
workflow
:tidymodels workflows
-
model_fit
:parsnip
-
rxGlm
:rxGlm
-
rxLinMod
:rxLinMod
-
rxLogit
:rxLogit
Author(s)
Jared P. Lander
See Also
coefplot.lm
coefplot.data.frame
lm
glm
ggplot
coefplot
plotcoef
Examples
data(diamonds)
head(diamonds)
model1 <- lm(price ~ carat + cut*color, data=diamonds)
model2 <- lm(price ~ carat*color, data=diamonds)
model3 <- glm(price > 10000 ~ carat*color, data=diamonds)
coefplot(model1)
coefplot(model2)
coefplot(model3)
coefplot(model1, predictors="color")
coefplot(model1, predictors="color", strict=TRUE)
coefplot(model1, coefficients=c("(Intercept)", "color.Q"))
coefplot(model1, predictors="cut", coefficients=c("(Intercept)", "color.Q"), strict=TRUE)
coefplot(model1, predictors="cut", coefficients=c("(Intercept)", "color.Q"), strict=FALSE)
coefplot(model1, predictors="cut", coefficients=c("(Intercept)", "color.Q"),
strict=TRUE, newNames=c(color.Q="Color", "cut^4"="Fourth"))
coefplot(model1, predictors=c("(Intercept)", "carat"), newNames=c(carat="Size"))
coefplot(model1, predictors=c("(Intercept)", "carat"),
newNames=c(carat="Size", "(Intercept)"="Constant"))
data(diamonds)
head(diamonds)
model1 <- lm(price ~ carat + cut*color, data=diamonds)
model2 <- lm(price ~ carat*color, data=diamonds)
coefplot(model1)
coefplot(model2)
coefplot(model1, predictors="color")
coefplot(model1, predictors="color", strict=TRUE)
coefplot(model1, coefficients=c("(Intercept)", "color.Q"))
model1 <- lm(price ~ carat + cut*color, data=diamonds)
coefplot(model1)
model2 <- glm(price > 10000 ~ carat + cut*color, data=diamonds, family=binomial(link="logit"))
coefplot(model2)
coefplot(model2, trans=invlogit)
## Not run:
mod4 <- rxGlm(price ~ carat + cut + x, data=diamonds)
mod5 <- rxGlm(price > 10000 ~ carat + cut + x, data=diamonds, family="binomial")
coefplot(mod4)
coefplot(mod5)
## End(Not run)
## Not run:
data(diamonds)
mod3 <- rxLinMod(price ~ carat + cut + x, data=diamonds)
coefplot(mod3)
## End(Not run)
## Not run:
data(diamonds)
mod6 <- rxLogit(price > 10000 ~ carat + cut + x, data=diamonds)
coefplot(mod6)
## End(Not run)