Compute a Bayesian version of R-squared for regression models

```
# S3 method for brmsfit
bayes_R2(object, newdata = NULL, re_formula = NULL,
allow_new_levels = FALSE, sample_new_levels = "uncertainty",
new_objects = list(), incl_autocor = TRUE, subset = NULL,
nsamples = NULL, nug = NULL, summary = TRUE, robust = FALSE,
probs = c(0.025, 0.975), ...)
```

object

An object of class `brmsfit`

newdata

An optional data.frame for which to evaluate predictions.
If `NULL`

(default), the orginal data of the model is used.

re_formula

formula containing group-level effects
to be considered in the prediction.
If `NULL`

(default), include all group-level effects;
if `NA`

, include no group-level effects.

allow_new_levels

A flag indicating if new
levels of group-level effects are allowed
(defaults to `FALSE`

).
Only relevant if `newdata`

is provided.

sample_new_levels

Indicates how to sample new levels
for grouping factors specified in `re_formula`

.
This argument is only relevant if `newdata`

is provided and
`allow_new_levels`

is set to `TRUE`

.
If `"uncertainty"`

(default), include group-level uncertainty
in the predictions based on the variation of the existing levels.
If `"gaussian"`

, sample new levels from the (multivariate)
normal distribution implied by the group-level standard deviations
and correlations. This options may be useful for conducting
Bayesian power analysis.
If `"old_levels"`

, directly sample new levels from the
existing levels.

new_objects

incl_autocor

subset

A numeric vector specifying
the posterior samples to be used.
If `NULL`

(the default), all samples are used.

nsamples

Positive integer indicating how many
posterior samples should be used.
If `NULL`

(the default) all samples are used.
Ignored if `subset`

is not `NULL`

.

nug

Small positive number for Gaussian process terms only.
For numerical reasons, the covariance matrix of a Gaussian
process might not be positive definite. Adding a very small
number to the matrix's diagonal often solves this problem.
If `NULL`

(the default), `nug`

is chosen internally.

summary

Should summary statistics
(i.e. means, sds, and 95% intervals) 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 deivation (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`

.

...

Currently ignored.

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).

For an introduction to the approach, see https://github.com/jgabry/bayes_R2/blob/master/bayes_R2.pdf.

```
# 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 DataCamp Workspace