brms (version 2.14.0)

bayes_R2.brmsfit: Compute a Bayesian version of R-squared for regression models

Description

Compute a Bayesian version of R-squared for regression models

Usage

# S3 method for brmsfit
bayes_R2(
  object,
  resp = NULL,
  summary = TRUE,
  robust = FALSE,
  probs = c(0.025, 0.975),
  ...
)

Arguments

object

An object of class brmsfit.

resp

Optional names of response variables. If specified, predictions are performed only for the specified response variables.

summary

Should summary statistics be returned instead of the raw values? Default is TRUE.

robust

If FALSE (the default) the mean is used as the measure of central tendency and the standard deviation as the measure of variability. If TRUE, the median and the median absolute deviation (MAD) are applied instead. Only used if summary is TRUE.

probs

The percentiles to be computed by the quantile function. Only used if summary is TRUE.

...

Further arguments passed to posterior_epred, which is used in the computation of the R-squared values.

Value

If summary = TRUE a 1 x C matrix is returned (C = length(probs) + 2) containing summary statistics of Bayesian R-squared values. If summary = FALSE the posterior samples of the R-squared values are returned in a S x 1 matrix (S is the number of samples).

Details

For an introduction to the approach, see Gelman et al. (2018) and https://github.com/jgabry/bayes_R2/.

References

Andrew Gelman, Ben Goodrich, Jonah Gabry & Aki Vehtari. (2018). R-squared for Bayesian regression models, The American Statistician. https://doi.org/10.1080/00031305.2018.1549100. (Preprint available at https://stat.columbia.edu/~gelman/research/published/bayes_R2_v3.pdf.)

Examples

Run this code
# NOT RUN {
fit <- brm(mpg ~ wt + cyl, data = mtcars)
summary(fit)
bayes_R2(fit)

# compute R2 with new data
nd <- data.frame(mpg = c(10, 20, 30), wt = c(4, 3, 2), cyl = c(8, 6, 4))
bayes_R2(fit, newdata = nd)
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab