pp_check
method for class "hef". This provides an interface
to the functions that perform posterior predictive checks in the
bayesplot package. See PPC-overview for
details of these functions.
# S3 method for hef
pp_check(object, fun = NULL, raw = FALSE, nrep = NULL, ...)
An object of class "hef", a result of a call to
hef
or hanova1
.
The plotting function to call. Can be any of the functions detailed at PPC-overview. The "ppc_" prefix can optionally be dropped if fun is specified as a string.
Only relevant if object$model = "beta_binom"
or
object$model = "gamma_pois"
.
If raw = TRUE
then the raw responses are used in the plots.
Otherwise, the proportions of successes are used in the
beta_binom
case and the exposure-adjusted rate in the
gamma_pois
case. In both cases the values used are
object$data[, 1] / object$data[, 2]
and the equivalent
in object$data_rep
.
The number of predictive replicates to use. If nrep
is supplied then the first nrep
rows of object$data_rep
are used. Otherwise, or if nrep
is greater than
nrow(object$data_rep)
, then all rows are used.
Additional arguments passed on to bayesplot functions. See Examples below.
A ggplot object that can be further customized using the
ggplot2 package.
For details of these functions see PPC-overview. See also the vignettes Conjugate Hierarchical Models, Hierarchical 1-way Analysis of Variance and the bayesplot vignette Graphical posterior predictive checks.
The general idea is to compare the observed data object$data
with a matrix object$data_rep
in which each row is a
replication of the observed data simulated from the posterior predictive
distribution. For greater detail see Chapter 6 of Gelman et al. (2013).
Jonah Gabry (2016). bayesplot: Plotting for Bayesian Models. R package version 1.1.0. https://CRAN.R-project.org/package=bayesplot
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. (Chapter 6). http://www.stat.columbia.edu/~gelman/book/
hef
and hanova1
for sampling
from posterior distributions of hierarchical models.
bayesplot functions PPC-overview, PPC-distributions, PPC-test-statistics, PPC-intervals, pp_check.
############################ Beta-binomial #################################
# ------------------------- Rat tumor data ------------------------------- #
rat_res <- hef(model = "beta_binom", data = rat, nrep = 50)
# Overlaid density estimates
pp_check(rat_res)
# \donttest{
# Overlaid distribution function estimates
pp_check(rat_res, fun = "ecdf_overlay")
# }
# Multiple histograms
pp_check(rat_res, fun = "hist", nrep = 8)
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
# \donttest{
# Multiple boxplots
pp_check(rat_res, fun = "boxplot")
#> Notch went outside hinges
#> ℹ Do you want `notch = FALSE`?
# Predictive medians vs observed median
pp_check(rat_res, fun = "stat", stat = "median")
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
# }
# Predictive (mean, sd) vs observed (mean, sd)
pp_check(rat_res, fun = "stat_2d", stat = c("mean", "sd"))
############################ Gamma-Poisson #################################
# ------------------------ Pump failure data ------------------------------ #
pump_res <- hef(model = "gamma_pois", data = pump, nrep = 50)
# \donttest{
# Overlaid density estimates
pp_check(pump_res)
# Predictive (mean, sd) vs observed (mean, sd)
pp_check(pump_res, fun = "stat_2d", stat = c("mean", "sd"))
# }
###################### One-way Hierarchical ANOVA ##########################
#----------------- Late 21st Century Global Temperature Data ------------- #
RCP26_2 <- temp2[temp2$RCP == "rcp26", ]
temp_res <- hanova1(resp = RCP26_2[, 1], fac = RCP26_2[, 2], nrep = 50)
# \donttest{
# Overlaid density estimates
pp_check(temp_res)
# Predictive (mean, sd) vs observed (mean, sd)
pp_check(temp_res, fun = "stat_2d", stat = c("mean", "sd"))
# }