Get draws of a distributional parameter from a brmsprep or mvbrmsprep object. This function is primarily useful when developing custom families or packages depending on brms. This function lets callers easily handle both the case when the distributional parameter is predicted directly, via a (non-)linear predictor or fixed to a constant. See the vignette vignette("brms_customfamilies") for an example use case.

get_dpar(prep, dpar, i = NULL, inv_link = NULL)



A 'brmsprep' or 'mvbrmsprep' object created by prepare_predictions.


Name of the distributional parameter.


The observation numbers for which predictions shall be extracted. If NULL (the default), all observation will be extracted. Ignored if dpar is not predicted.


Should the inverse link function be applied? If NULL (the default), the value is chosen internally. In particular, inv_link is TRUE by default for custom families.


If the parameter is predicted and i is NULL or

length(i) > 1, an S x N matrix. If the parameter it not predicted or length(i) == 1, a vector of length S. Here

S is the number of draws and N is the number of observations or length of i if specified.


if (FALSE) {
posterior_predict_my_dist <- function(i, prep, ...) {
  mu <- brms::get_dpar(prep, "mu", i = i)
  mypar <- brms::get_dpar(prep, "mypar", i = i)
  my_rng(mu, mypar)