% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/loo_predict.R
\name{loo_predict.brmsfit}
\alias{loo_predict.brmsfit}
\alias{loo_predict}
\alias{loo_epred}
\alias{loo_linpred}
\alias{loo_predictive_interval}
\alias{loo_epred.brmsfit}
\alias{loo_linpred.brmsfit}
\alias{loo_predictive_interval.brmsfit}
\title{Compute Weighted Expectations Using LOO}
\usage{
\method{loo_predict}{brmsfit}(
  object,
  type = c("mean", "var", "quantile"),
  probs = 0.5,
  psis_object = NULL,
  resp = NULL,
  ...
)

\method{loo_epred}{brmsfit}(
  object,
  type = c("mean", "var", "quantile"),
  probs = 0.5,
  psis_object = NULL,
  resp = NULL,
  ...
)

loo_epred(object, ...)

\method{loo_linpred}{brmsfit}(
  object,
  type = c("mean", "var", "quantile"),
  probs = 0.5,
  psis_object = NULL,
  resp = NULL,
  ...
)

\method{loo_predictive_interval}{brmsfit}(object, prob = 0.9, psis_object = NULL, ...)
}
\arguments{
\item{object}{An object of class \code{brmsfit}.}

\item{type}{The statistic to be computed on the results.
Can by either \code{"mean"} (default), \code{"var"}, or
\code{"quantile"}.}

\item{probs}{A vector of quantiles to compute.
Only used if \code{type = quantile}.}

\item{psis_object}{An optional object returned by \code{\link[loo]{psis}}.
If \code{psis_object} is missing then \code{\link[loo]{psis}} is executed
internally, which may be time consuming for models fit to very large datasets.}

\item{resp}{Optional names of response variables. If specified, predictions
are performed only for the specified response variables.}

\item{...}{Optional arguments passed to the underlying methods that is
\code{\link[brms:log_lik.brmsfit]{log_lik}}, as well as
\code{\link[brms:posterior_predict.brmsfit]{posterior_predict}},
\code{\link[brms:posterior_epred.brmsfit]{posterior_epred}} or
\code{\link[brms:posterior_linpred.brmsfit]{posterior_linpred}}.}

\item{prob}{For \code{loo_predictive_interval}, a scalar in \eqn{(0,1)}
indicating the desired probability mass to include in the intervals. The
default is \code{prob = 0.9} (\eqn{90}\% intervals).}
}
\value{
\code{loo_predict}, \code{loo_epred}, \code{loo_linpred}, and
  \code{loo_predictive_interval} all return a matrix with one row per
  observation and one column per summary statistic as specified by
  arguments \code{type} and \code{probs}. In multivariate or categorical models
  a third dimension is added to represent the response variables or categories,
  respectively.

  \code{loo_predictive_interval(..., prob = p)} is equivalent to
  \code{loo_predict(..., type = "quantile", probs = c(a, 1-a))} with
  \code{a = (1 - p)/2}.
}
\description{
These functions are wrappers around the \code{\link[loo]{E_loo}}
function of the \pkg{loo} package.
}
\examples{
\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)
}

}
