| er_style_vpc_observed | R Documentation |
Builder functions for the observed layer (er_vpc_add_observed()),
drawing the observed side of a visual predictive check as a
mean/rate + confidence interval per bin (the default, adaptive to
plot_by's type), a continuous-x line of empirical percentiles, or a
point/interval per bin and per requested percentile.
er_style_vpc_observed_quantile_line(
data,
config,
exposure,
response,
theme,
point_size = 1.5,
...
)
er_style_vpc_observed_quantile_errorbar(
data,
config,
exposure,
response,
theme,
point_size = 1.5,
errorbar_width = NULL,
dodge = 0,
prob_dodge_width = 0,
...
)
er_style_vpc_observed_mean_errorbar(
data,
config,
exposure,
response,
theme,
point_size = 2,
errorbar_width = NULL,
dodge = 0,
show_label = FALSE,
label_size = 3,
...
)
data |
The original data frame. |
config |
Configuration for the observed layer. |
exposure |
Exposure variable. |
response |
Response variable. |
theme |
Theme components. |
point_size |
Point size for all three point/interval builders.
Defaults to |
... |
Additional named arguments forwarded from
|
errorbar_width |
Width of |
dodge |
Horizontal offset (as a fraction of |
prob_dodge_width |
Horizontal spread (as a fraction of |
show_label |
For |
label_size |
Text size for |
See er_style_vpc() for the shared interface every VPC-grammar
builder implements.
A list of geoms; see er_style().
All three builders plot the observed side of a bin against the
simulated side drawn by their er_style_vpc_simulated() counterpart;
which one to reach for depends on how much of the response's
distribution you need to see, and what kind of response/plot_by
you have:
er_style_vpc_observed_mean_errorbar() (the default) – one
point + confidence interval per bin, summarising the rate/mean
only. Works for every response type and either kind of plot_by.
Start here unless you specifically need percentile bands.
er_style_vpc_observed_quantile_line() – a continuous line per
requested percentile, for a fuller picture of the response's
distribution across bins. Requires a continuous/count response and
a numeric plot_by; pairs with
er_style_vpc_simulated_quantile_ribbon().
er_style_vpc_observed_quantile_errorbar() – a point + interval
per requested percentile per bin, the discrete-bin analogue of the
line idiom above. Same response-type restriction, but also works
with a categorical plot_by; pairs with
er_style_vpc_simulated_quantile_errorbar().
er_style_vpc_observed_mean_errorbar() plots config$summary's
rate/mean + confidence interval, adapting its x-position to
plot_by's type (config$is_numeric_group): equally spaced at each
bin's categorical (or quantile-bin) label when plot_by is
categorical, or at each bin's numeric median (x_median, from
config$summary) on plot_by's own numeric scale when plot_by is
numeric. Because it adapts its x-position family at build time rather
than declaring one statically, it carries no vpc_layout tag – pair
it with er_style_vpc_simulated_mean_errorbar(), which mirrors the
same adaptive logic.
er_style_vpc_observed_quantile_line() plots config$percentiles –
one line per requested percentile – at each bin's numeric midpoint on
plot_by's own numeric scale, for pairing with
er_style_vpc_simulated_quantile_ribbon(). config$percentiles is
only computed for a continuous/count response (see er_vpc()'s
probs argument); calling er_style_vpc_observed_quantile_line()
without it errors.
er_style_vpc_observed_quantile_errorbar() plots config$percentiles
– a point + confidence interval (via ci_quantile()) for each
requested percentile – for pairing with
er_style_vpc_simulated_quantile_errorbar(). Like
er_style_vpc_observed_mean_errorbar(), it adapts its x-position to
plot_by's type (config$is_numeric_group): equally spaced at each
bin's categorical (or quantile-bin) label when plot_by is
categorical, or at each bin's numeric median (x_median, from
config$percentiles) on plot_by's own numeric scale when plot_by is
numeric. Because it adapts its x-position family at build time rather
than declaring one statically, it carries no vpc_layout tag. Unlike
er_style_vpc_observed_quantile_line()/
er_style_vpc_simulated_quantile_ribbon(), it supports a categorical
plot_by as well as a numeric one; like it, it requires a
continuous/count response (a binary response's distribution is
already fully described by its rate) and errors informatively without
config$percentiles. When more than one percentile is requested, all
of them are currently plotted at the same x-position within a bin
rather than dodged apart, so overlapping error bars/points are only
distinguishable by their y-position – dodging support may be added
in a future release.
Each builder maps a constant color = "Observed", so ggplot2 merges
its legend entry with whatever the paired simulated-layer builder
maps for "Simulated" into a single combined legend.
In the worst case – er_style_vpc_observed_quantile_errorbar()
paired with er_style_vpc_simulated_quantile_errorbar() for a
numeric plot_by with several probs – up to 2 * length(probs)
error bars land at the exact same x-position within a bin (every
probs value, for both the observed and simulated layers), which can
be unreadable. dodge (separating the observed and simulated layers)
and prob_dodge_width (spreading a single layer's own probs apart)
are both opt-in, manual escape hatches for this – see their own
argument docs above. Neither is automatic, because which collision is
actually occurring (source-vs-source, probs-vs-probs, or both)
depends on the data at hand.
er_style_vpc(), er_style_vpc_simulated()
if (requireNamespace("erglm", quietly = TRUE)) {
library(erglm)
mod <- erglm_model(ae2 ~ aucss + sex, erglm_data, family = binomial())
# er_style_vpc_observed_mean_errorbar(): the default, adaptive to
# plot_by's type
erglm_data |>
er_vpc(aucss, ae2, plot_by = aucss) |>
er_vpc_add_observed(style = er_style_vpc_observed_mean_errorbar) |>
er_vpc_add_simulated(model = mod, seed = 6203, style = er_style_vpc_simulated_mean_errorbar) |>
plot()
# er_style_vpc_observed_quantile_line(): continuous-x percentile
# lines, paired with the matching simulated ribbon builder
mod2 <- erglm_model(biomarker_change ~ aucss, erglm_data, family = gaussian())
erglm_data |>
er_vpc(aucss, biomarker_change, plot_by = aucss) |>
er_vpc_add_observed(style = er_style_vpc_observed_quantile_line) |>
er_vpc_add_simulated(
model = mod2, seed = 8417, style = er_style_vpc_simulated_quantile_ribbon
) |>
plot()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.