--- title: "Using priorsense with brms" vignette: > %\VignetteIndexEntry{Using priorsense with brms} %\VignetteEngine{quarto::html} %\VignetteEncoding{UTF-8} --- ```{r} #| include: false ggplot2::theme_set(bayesplot::theme_default(base_family = "sans")) options(priorsense.plot_help_text = FALSE) ``` ```{r} #| message: false #| warning: false library(posterior) library(priorsense) library(brms) ``` `brms` has built-in support for `priorsense`, such that it can be used directly without any modifications to model code. However, priors can also be tagged in order to selectively power-scale priors. Consider the univariate normal model with unknown mu and sigma available via`example_powerscale_model("univariate_normal")`. By also defining separate `intercept` and `sigma` prior tags, it will be possible to check the sensitivity for each prior separately. ```{r} #| echo: false #| message: false #| warning: false fit <- readRDS(system.file("extdata", "univariate_normal_brms.RDS", package = "priorsense")) ``` ```{r} #| message: false #| warning: false #| results: false #| eval: false normal_model <- example_powerscale_model(model = "univariate_normal") priors <- c( prior(coef = "Intercept", normal(0, 1), tag = "intercept"), prior(class = "sigma", normal(0, 2.5), tag = "sigma") ) fit <- brm( bf(y ~ 1, center = FALSE), data = data.frame(y = normal_model$data$y), prior = priors ) ``` Then the `priorsense` functions will work as usual. ```{r} powerscale_sensitivity(fit) ``` ```{r} powerscale_sensitivity(fit, prior_selection = "sigma") ``` ```{r} powerscale_sensitivity(fit, prior_selection = "intercept") ``` ```{r} #| message: false #| warning: false #| fig-width: 6 #| fig-height: 4 powerscale_plot_dens(fit) ```