bayes_R2.stanreg: Compute a Bayesian version of R-squared or LOO-adjusted...

View source: R/bayes_R2.R

bayes_R2.stanregR Documentation

Compute a Bayesian version of R-squared or LOO-adjusted R-squared for regression models.

Description

Compute a Bayesian version of R-squared or LOO-adjusted R-squared for regression models.

Usage

## S3 method for class 'stanreg'
bayes_R2(object, ..., re.form = NULL)

## S3 method for class 'stanreg'
loo_R2(object, ...)

Arguments

object

A fitted model object returned by one of the rstanarm modeling functions. See stanreg-objects.

...

Currently ignored.

re.form

For models with group-level terms, re.form is passed to posterior_epred if specified.

Value

A vector of R-squared values with length equal to the posterior sample size (the posterior distribution of R-squared).

References

Andrew Gelman, Ben Goodrich, Jonah Gabry, and Aki Vehtari (2018). R-squared for Bayesian regression models. The American Statistician, to appear. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1080/00031305.2018.1549100")} (Preprint, Notebook)

Examples

if (.Platform$OS.type != "windows" || .Platform$r_arch != "i386") {
fit <- stan_glm(
  mpg ~ wt + cyl, 
  data = mtcars, 
  QR = TRUE, 
  chains = 2, 
  refresh = 0
)
rsq <- bayes_R2(fit)
print(median(rsq))
hist(rsq)

loo_rsq <- loo_R2(fit)
print(median(loo_rsq))

# multilevel binomial model
if (!exists("example_model")) example(example_model)
print(example_model)
median(bayes_R2(example_model))
median(bayes_R2(example_model, re.form = NA)) # exclude group-level
}

rstanarm documentation built on Sept. 14, 2023, 1:07 a.m.