Posterior predictive checks for frequentist models
Posterior predictive checks for frequentist models.
pp_check(object, ...) ## S3 method for class 'lm' pp_check(object, iterations = 50, check_range = FALSE, re_formula = NULL, ...) posterior_predictive_check( object, iterations = 50, check_range = FALSE, re_formula = NULL, ... ) check_posterior_predictions( object, iterations = 50, check_range = FALSE, re_formula = NULL, ... )
object |
A statistical model. |
... |
Passed down to |
iterations |
The number of draws to simulate/bootstrap. |
check_range |
Logical, if |
re_formula |
Formula containing group-level effects (random effects) to
be considered in the simulated data. If |
Posterior predictive checks means “simulating replicated data
under the fitted model and then comparing these to the observed data”
(Gelman and Hill, 2007, p. 158). Posterior predictive checks
can be used to “look for systematic discrepancies between real and
simulated data” (Gelman et al. 2014, p. 169).
An example how posterior predictive checks can also be used for model
comparison is following plot (from Gabry et al. 2019, Figure 6):
The model shown in the right panel (b) can simulate new data that are more
similar to the observed outcome than the model in the left panel (a). Thus,
model (b) is likely to be preferred over model (a).
A data frame of simulated responses and the original response vector.
The default-method, pp_check.default()
is in package bayesplot.
Thus, performance adds pp_check()
-methods for different classes and
packages (like lm
, merMod
, glmmTMB
, ...). However, since
it might be that not all model objects that have a simulate()
function
are covered, and those objects probably can't be passed down to the default-method,
there is also a "generic" posterior_predictive_check()
function (and
its alias check_posterior_predictions()
), which just calls
pp_check.lm()
. Thus, every model object that has a simulate()
-method
should work with posterior_predictive_check()
.
Gabry, J., Simpson, D., Vehtari, A., Betancourt, M., & Gelman, A. (2019). Visualization in Bayesian workflow. Journal of the Royal Statistical Society: Series A (Statistics in Society), 182(2), 389–402. https://doi.org/10.1111/rssa.12378
Gelman, A., & Hill, J. (2007). Data analysis using regression and multilevel/hierarchical models. Cambridge; New York: Cambridge University Press.
Gelman, A., Carlin, J. B., Stern, H. S., Dunson, D. B., Vehtari, A., & Rubin, D. B. (2014). Bayesian data analysis. (Third edition). CRC Press.
Gelman, A., Hill, J., & Vehtari, A. (2020). Regression and Other Stories. Cambridge University Press.
library(performance) model <- lm(Sepal.Length ~ Species * Petal.Width + Petal.Length, data = iris) if (require("ggplot2") && require("see")) { pp_check(model) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.