These functions are wrappers around the E_loo
function of the loo package.
# S3 method for class 'brmsfit'
loo_predict(
object,
type = c("mean", "var", "quantile"),
probs = 0.5,
psis_object = NULL,
resp = NULL,
...
)
# S3 method for class 'brmsfit'
loo_epred(
object,
type = c("mean", "var", "quantile"),
probs = 0.5,
psis_object = NULL,
resp = NULL,
...
)
loo_epred(object, ...)
# S3 method for class 'brmsfit'
loo_linpred(
object,
type = c("mean", "var", "quantile"),
probs = 0.5,
psis_object = NULL,
resp = NULL,
...
)
# S3 method for class 'brmsfit'
loo_predictive_interval(object, prob = 0.9, psis_object = NULL, ...)An object of class brmsfit.
The statistic to be computed on the results.
Can by either "mean" (default), "var", or
"quantile".
A vector of quantiles to compute.
Only used if type = quantile.
An optional object returned by psis.
If psis_object is missing then psis is executed
internally, which may be time consuming for models fit to very large datasets.
Optional names of response variables. If specified, predictions are performed only for the specified response variables.
Optional arguments passed to the underlying methods that is
log_lik, as well as
posterior_predict,
posterior_epred or
posterior_linpred.
For loo_predictive_interval, a scalar in \((0,1)\)
indicating the desired probability mass to include in the intervals. The
default is prob = 0.9 (\(90\)% intervals).
loo_predict, loo_epred, loo_linpred, and
loo_predictive_interval all return a matrix with one row per
observation and one column per summary statistic as specified by
arguments type and probs. In multivariate or categorical models
a third dimension is added to represent the response variables or categories,
respectively.
loo_predictive_interval(..., prob = p) is equivalent to
loo_predict(..., type = "quantile", probs = c(a, 1-a)) with
a = (1 - p)/2.
if (FALSE) { # \dontrun{
## data from help("lm")
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
d <- data.frame(
weight = c(ctl, trt),
group = gl(2, 10, 20, labels = c("Ctl", "Trt"))
)
fit <- brm(weight ~ group, data = d)
loo_predictive_interval(fit, prob = 0.8)
## optionally log-weights can be pre-computed and reused
psis <- loo::psis(-log_lik(fit), cores = 2)
loo_predictive_interval(fit, prob = 0.8, psis_object = psis)
loo_predict(fit, type = "var", psis_object = psis)
loo_epred(fit, type = "var", psis_object = psis)
} # }