stat_quant_band {ggpmisc} | R Documentation |
Predicted band from quantile regression fits
Description
Predicted values are computed and, by default, plotted as a band plus an
optional line within. stat_quant_band()
supports the use of both
x
and y
as explanatory variable in the model formula.
Usage
stat_quant_band(
mapping = NULL,
data = NULL,
geom = "smooth",
position = "identity",
...,
quantiles = c(0.25, 0.5, 0.75),
formula = NULL,
fm.values = FALSE,
n = 80,
method = "rq",
method.args = list(),
na.rm = FALSE,
orientation = NA,
show.legend = NA,
inherit.aes = TRUE
)
Arguments
mapping |
The aesthetic mapping, usually constructed with
|
data |
A layer specific dataset, only needed if you want to override the plot defaults. |
geom |
The geometric object to use display the data. |
position |
The position adjustment to use for overlapping points on this layer. |
... |
other arguments passed on to |
quantiles |
numeric vector Two or three values in 0..1 indicating the quantiles at the edges of the band and optionally a line within the band. |
formula |
a formula object. Using aesthetic names |
fm.values |
logical Add n as a column to returned data? ('FALSE' by default.) |
n |
Number of points at which to evaluate smoother. |
method |
function or character If character, "rq", "rqss" or the name of
a model fit function are accepted, possibly followed by the fit function's
|
method.args |
named list with additional arguments. |
na.rm |
a logical indicating whether NA values should be stripped before the computation proceeds. |
orientation |
character Either "x" or "y" controlling the default for
|
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
Details
This statistic is similar to stat_quant_line
but plots the
quantiles differently with the band representing a region between two
quantiles, while in stat_quant_line()
the bands plotted when
se = TRUE
represent confidence intervals for the fitted quantile
lines.
geom_smooth
, which is used by default, treats each
axis differently and thus is dependent on orientation. If no argument is
passed to formula
, it defaults to y ~ x
but x ~y
is also
accepted, and equivalent to y ~ x
plus orientation = "y"
.
Package 'ggpmisc' does not define a new geometry matching this statistic as
it is enough for the statistic to return suitable 'x' and 'y' values.
Value
The value returned by the statistic is a data frame, that will have
n
rows of predicted values for three quantiles as y
,
ymin
and ymax
, plus x
.
Aesthetics
stat_quant_eq
expects x
and y
,
aesthetics to be used in the formula
rather than the names of the
variables mapped to them. If present, the variable mapped to the
weight
aesthetics is passed as argument to parameter weights
of the fitting function. All three must be mapped to numeric
variables. In addition, the aesthetics recognized by the geometry
("geom_smooth"
is the default) are obeyed and grouping
respected.
See Also
Other ggplot statistics for quantile regression:
stat_quant_eq()
,
stat_quant_line()
Examples
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band()
# If you need the fitting to be done along the y-axis set the orientation
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(orientation = "y")
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(formula = y ~ x)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(formula = x ~ y)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(formula = y ~ poly(x, 3))
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(formula = x ~ poly(y, 3))
# Instead of rq() we can use rqss() to fit an additive model:
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(method = "rqss",
formula = y ~ qss(x))
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(method = "rqss",
formula = x ~ qss(y, constraint = "D"))
# Regressions are automatically fit to each group (defined by categorical
# aesthetics or the group aesthetic) and for each facet.
ggplot(mpg, aes(displ, hwy, colour = class)) +
geom_point() +
stat_quant_band(formula = y ~ x)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(formula = y ~ poly(x, 2)) +
facet_wrap(~drv)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
stat_quant_band(linetype = "dashed", color = "darkred", fill = "red")
ggplot(mpg, aes(displ, hwy)) +
stat_quant_band(color = NA, alpha = 1) +
geom_point()
ggplot(mpg, aes(displ, hwy)) +
stat_quant_band(quantiles = c(0, 0.1, 0.2)) +
geom_point()
# Inspecting the returned data using geom_debug()
gginnards.installed <- requireNamespace("gginnards", quietly = TRUE)
if (gginnards.installed)
library(gginnards)
if (gginnards.installed)
ggplot(mpg, aes(displ, hwy)) +
stat_quant_band(geom = "debug")
if (gginnards.installed)
ggplot(mpg, aes(displ, hwy)) +
stat_quant_band(geom = "debug", fm.values = TRUE)