robust_prior: Construct a robust (heavy-tailed mixture) prior

View source: R/robust_priors.R

robust_priorR Documentation

Construct a robust (heavy-tailed mixture) prior

Description

Builds a robust prior by mixing an informative component with a vague (diffuse) component, following the RBesT/MAP robust mixture approach (Schmidli et al., 2014). This protects against prior misspecification by ensuring the posterior is not dominated by a conflicting informative prior.

Usage

robust_prior(
  informative,
  vague_weight = 0.2,
  vague_sd = NULL,
  label = "Robust mixture prior"
)

Arguments

informative

A bayprior object representing the informative component (e.g. an elicited or historical prior).

vague_weight

Numeric in (0, 1). Weight assigned to the vague (diffuse) component. Default 0.20 (80% informative, 20% vague).

vague_sd

Numeric. SD of the vague Normal component (on the natural scale). If NULL, defaults to 10x the informative prior's SD.

label

Character. Label for the robust prior.

Details

The vague component is always a Normal distribution centred at the informative prior's mean with SD = vague_sd (default: 10x the informative SD). When the informative prior is itself Normal, both components share the same family and the mixture density is computed analytically. For any other informative prior family (Beta, Gamma, Log-Normal, Exponential, Weibull), the components have different distribution families, and the mixture density is computed numerically. A warning is issued in this case.

Value

A bayprior object with dist = "mixture" and prior_type = "robust".

References

Schmidli, H. et al. (2014). Robust meta-analytic-predictive priors in clinical trials with historical control information. Biometrics, 70, 1023-1032.

Examples

informative <- elicit_normal(mean = 0.30, sd = 0.10,
                             method = "moments", label = "Response rate")
robust      <- robust_prior(informative, vague_weight = 0.20)
plot(robust)


bayprior documentation built on Aug. 27, 2026, 1:09 a.m.