PPC test statistics
The distribution of a (test) statistic T(yrep), or a pair of (test)
statistics, over the simulated datasets in yrep, compared to the
observed value T(y) computed from the data y. See the
Plot Descriptions and Details sections, below, as
well as Gabry et al. (2019).
ppc_stat(
y,
yrep,
stat = "mean",
...,
binwidth = NULL,
breaks = NULL,
freq = TRUE
)
ppc_stat_grouped(
y,
yrep,
group,
stat = "mean",
...,
facet_args = list(),
binwidth = NULL,
breaks = NULL,
freq = TRUE
)
ppc_stat_freqpoly_grouped(
y,
yrep,
group,
stat = "mean",
...,
facet_args = list(),
binwidth = NULL,
freq = TRUE
)
ppc_stat_2d(y, yrep, stat = c("mean", "sd"), ..., size = 2.5, alpha = 0.7)y |
A vector of observations. See Details. |
yrep |
An S by N matrix of draws from the posterior
predictive distribution, where S is the size of the posterior sample
(or subset of the posterior sample used to generate |
stat |
A single function or a string naming a function, except for
|
... |
Currently unused. |
binwidth |
Passed to |
breaks |
Passed to |
freq |
For histograms, |
group |
A grouping variable (a vector or factor) the same length as
|
facet_args |
A named list of arguments (other than |
size, alpha |
Arguments passed to |
For Binomial data, the plots will typically be most useful if
y and yrep contain the "success" proportions (not discrete
"success" or "failure" counts).
A ggplot object that can be further customized using the ggplot2 package.
ppc_stat()A histogram of the distribution of a test statistic computed by applying
stat to each dataset (row) in yrep. The value of the statistic in the
observed data, stat(y), is overlaid as a vertical line. More details on
ppc_stat() can be found in Gabry et al. (2019).
ppc_stat_grouped(),ppc_stat_freqpoly_grouped()
The same as ppc_stat(), but a separate plot is generated for each
level of a grouping variable. In the case of
ppc_stat_freqpoly_grouped() the plots are frequency polygons rather
than histograms. More details on ppc_stat_grouped() can be found in
Gabry et al. (2019).
ppc_stat_2d()A scatterplot showing the joint distribution of two test statistics
computed over the datasets (rows) in yrep. The value of the
statistics in the observed data is overlaid as large point.
Gabry, J. , Simpson, D. , Vehtari, A. , Betancourt, M. and Gelman, A. (2019), Visualization in Bayesian workflow. J. R. Stat. Soc. A, 182: 389-402. doi:10.1111/rssa.12378. (journal version, arXiv preprint, code on GitHub)
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-censoring,
PPC-discrete,
PPC-distributions,
PPC-errors,
PPC-intervals,
PPC-loo,
PPC-overview,
PPC-scatterplots
y <- example_y_data()
yrep <- example_yrep_draws()
ppc_stat(y, yrep)
ppc_stat(y, yrep, stat = "sd") + legend_none()
ppc_stat_2d(y, yrep)
ppc_stat_2d(y, yrep, stat = c("median", "mean")) + legend_move("bottom")
color_scheme_set("teal")
group <- example_group_data()
ppc_stat_grouped(y, yrep, group)
color_scheme_set("mix-red-blue")
ppc_stat_freqpoly_grouped(y, yrep, group, facet_args = list(nrow = 2))
# use your own function to compute test statistics
color_scheme_set("brightblue")
q25 <- function(y) quantile(y, 0.25)
ppc_stat(y, yrep, stat = "q25") # legend includes function name
# can define the function in the 'stat' argument but then
# the legend doesn't include a function name
ppc_stat(y, yrep, stat = function(y) quantile(y, 0.25))Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.