R/model_weights.R
posterior_average.brmsfit.Rd
Extract posterior draws of parameters averaged across models. Weighting can be done in various ways, for instance using Akaike weights based on information criteria or marginal likelihoods.
# S3 method for brmsfit
posterior_average(
x,
...,
variable = NULL,
pars = NULL,
weights = "stacking",
ndraws = NULL,
nsamples = NULL,
missing = NULL,
model_names = NULL,
control = list(),
seed = NULL
)
posterior_average(x, ...)
A brmsfit
object.
More brmsfit
objects or further arguments
passed to the underlying post-processing functions.
In particular, see prepare_predictions
for further
supported arguments.
Names of variables (parameters) for which to average across models. Only those variables can be averaged that appear in every model. Defaults to all overlapping variables.
Deprecated alias of variable
.
Name of the criterion to compute weights from. Should be one
of "loo"
, "waic"
, "kfold"
, "stacking"
(current
default), or "bma"
, "pseudobma"
, For the former three
options, Akaike weights will be computed based on the information criterion
values returned by the respective methods. For "stacking"
and
"pseudobma"
, method loo_model_weights
will be used to
obtain weights. For "bma"
, method post_prob
will be
used to compute Bayesian model averaging weights based on log marginal
likelihood values (make sure to specify reasonable priors in this case).
For some methods, weights
may also be a numeric vector of
pre-specified weights.
Total number of posterior draws to use.
Deprecated alias of ndraws
.
An optional numeric value or a named list of numeric values
to use if a model does not contain a variable for which posterior draws
should be averaged. Defaults to NULL
, in which case only those
variables can be averaged that are present in all of the models.
If NULL
(the default) will use model names
derived from deparsing the call. Otherwise will use the passed
values as model names.
Optional list
of further arguments
passed to the function specified in weights
.
A single numeric value passed to set.seed
to make results reproducible.
A data.frame
of posterior draws.
Weights are computed with the model_weights
method.
if (FALSE) {
# model with 'treat' as predictor
fit1 <- brm(rating ~ treat + period + carry, data = inhaler)
summary(fit1)
# model without 'treat' as predictor
fit2 <- brm(rating ~ period + carry, data = inhaler)
summary(fit2)
# compute model-averaged posteriors of overlapping parameters
posterior_average(fit1, fit2, weights = "waic")
}