
Medians and central interval estimates of yrep
with y
overlaid.
See the Plot Descriptions section, below.
ppc_intervals(y, yrep, x = NULL, ..., prob = 0.9, size = 1, fatten = 3)ppc_intervals_grouped(y, yrep, x = NULL, group, facet_args = list(), ...,
prob = 0.9, size = 1, fatten = 3)
ppc_ribbon(y, yrep, x = NULL, ..., prob = 0.9, alpha = 0.33,
size = 0.25)
ppc_ribbon_grouped(y, yrep, x = NULL, group, facet_args = list(), ...,
prob = 0.9, alpha = 0.33, size = 0.25)
ppc_intervals_data(y, yrep, x = NULL, group = NULL, prob = 0.9, ...)
ppc_ribbon_data(y, yrep, x = NULL, group = NULL, prob = 0.9, ...)
A vector of observations. See Details.
An yrep
) and
y
). The columns
of yrep
should be in the same order as the data points in y
for the plots to make sense. See Details for additional
instructions.
A numeric vector the same length as y
to use as the x-axis
variable. For example, x
could be a predictor variable from a
regression model, a time variable for time-series models, etc. If x
is missing or NULL, then 1:length(y)
is used for the x-axis.
Currently unused.
A value between 0 and 1 indicating the desired probability mass
to include in the yrep
intervals. The default is 0.9.
A grouping variable (a vector or factor) the same length as
y
. Each value in group
is interpreted as the group level
pertaining to the corresponding value of y
.
An optional list of arguments (other than facets
)
passed to facet_wrap
to control faceting.
Arguments passed to geoms. For ribbon plots
alpha
and size
are passed to
geom_ribbon
. For interval plots size
and
fatten
are passed to geom_pointrange
.
A ggplot object that can be further customized using the
ggplot2 package. The _data
functions return the data that
would have be drawn by the plotting function.
ppc_intervals, ppc_ribbon
100*prob
% central intervals for yrep
at each x
value. ppc_intervals
plots intervals as vertical bars with points
indicating yrep
medians and darker points indicating observed
y
values. ppc_ribbon
plots a ribbon of connected intervals
with a line through the median of yrep
and a darker line connecting
observed y
values. In both cases an optional x
variable can
also be specified for the x-axis variable.
Depending on the number of observations and the variability in the
predictions at different values of x
, one or the other of these
plots may be easier to read than the other.
ppc_intervals_grouped, ppc_ribbon_grouped
Same as ppc_intervals
and ppc_ribbon
, respectively, but a
separate plot (facet) is generated for each level of a grouping variable.
Gelman, A., Carlin, J. B., Stern, H. S., Dunson, D. B., Vehtari, A., and Rubin, D. B. (2013). Bayesian Data Analysis. Chapman & Hall/CRC Press, London, third edition. (Ch. 6)
Other PPCs: PPC-discrete
,
PPC-distributions
,
PPC-errors
, PPC-loo
,
PPC-overview
,
PPC-scatterplots
,
PPC-test-statistics
# NOT RUN {
y <- rnorm(50)
yrep <- matrix(rnorm(5000, 0, 2), ncol = 50)
color_scheme_set("brightblue")
ppc_ribbon(y, yrep)
ppc_intervals(y, yrep)
color_scheme_set("teal")
year <- 1950:1999
ppc_ribbon(y, yrep, x = year, alpha = 0, size = 0.75) + ggplot2::xlab("Year")
color_scheme_set("pink")
year <- rep(2000:2009, each = 5)
group <- gl(5, 1, length = 50, labels = LETTERS[1:5])
ppc_ribbon_grouped(y, yrep, x = year, group) +
ggplot2::scale_x_continuous(breaks = pretty)
ppc_ribbon_grouped(
y, yrep, x = year, group,
facet_args = list(scales = "fixed"),
alpha = 1,
size = 2
) +
xaxis_text(FALSE) +
xaxis_ticks(FALSE) +
panel_bg(fill = "gray20")
ppc_data <- ppc_intervals_data(y, yrep, x = year, prob = 0.5)
ppc_group_data <- ppc_intervals_data(y, yrep, x = year, group, prob = 0.5)
# }
# NOT RUN {
library("rstanarm")
fit <- stan_glmer(mpg ~ wt + (1|cyl), data = mtcars)
yrep <- posterior_predict(fit)
color_scheme_set("purple")
with(mtcars, ppc_intervals(mpg, yrep, x = wt, prob = 0.5)) +
panel_bg(fill="gray90", color = NA) +
grid_lines(color = "white")
ppc_intervals_grouped(y = mtcars$mpg, yrep, prob = 0.8,
x = mtcars$wt, group = mtcars$cyl)
color_scheme_set("gray")
ppc_intervals(mtcars$mpg, yrep, prob = 0.5) +
ggplot2::scale_x_continuous(
labels = rownames(mtcars),
breaks = 1:nrow(mtcars)
) +
xaxis_text(angle = -70, vjust = 1, hjust = 0)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab