loo_R2.brmsfit: Compute a LOO-adjusted R-squared for regression models

View source: R/loo_predict.R

loo_R2.brmsfitR Documentation

Compute a LOO-adjusted R-squared for regression models

Description

Compute a LOO-adjusted R-squared for regression models

Usage

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

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.

seed

Optional integer used to initialize the random number generator.

...

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

Value

If summary = TRUE, an M x C matrix is returned (M = number of response variables and c = length(probs) + 2) containing Bayesian bootstrap based summary statistics of the LOO-adjusted R-squared values. If summary = FALSE, the Bayesian bootstrap draws of the LOO-adjusted R-squared values are returned in an S x M matrix (S is the number of draws).

@details LOO-R2 uses LOO residuals and is defined as 1-Var_{loo-res} / Var_y, with

Var_y = V_{n=1}^N y_n, and Var_{loo-res} = V_{n=1}^N \hat{e}_{loo,n},

where \hat{e}_{loo,n}=y_n-\hat{y}_{loo,n}. Bayesian bootstrap is used to draw from the approximated uncertainty distribution as described by Vehtari and Lampinen (2002).

References

Vehtari and Lampinen (2002). Bayesian model assessment and comparison using cross-validation predictive densities. Neural Computation, 14(10):2439-2468.

Examples

## Not run: 
fit <- brm(mpg ~ wt + cyl, data = mtcars)
summary(fit)
loo_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))
loo_R2(fit, newdata = nd)

## End(Not run)


paul-buerkner/brms documentation built on Dec. 18, 2024, 2:23 a.m.