Brms - set priors correctly for group effects

I’m trying to understand how is the best way to set priors for group effects taking into account the variation between them, because I’m a bit confused about the class = “sd”. I have the following case where I want to estimate Units sold using Price which varies by Region (North, South, East, West), using the following :

"Units ~ 1 + Price + (0 + Price | Region)"

Let’s assume that I have knowledge and want the estimates for each region to be around those values :

  • North : 0.6
  • South : 1.1
  • East : 2.1
  • West : 0.05

What would be the best way to define the model priors in order to define the variation among groups since in I can’t specify seperate priors for each beta coefficient of every Region? Would it best captured by something like :

set_prior(normal(Region_avg, Region_sd), class = "b", coef = "Price")

or also I need to add a prior for the sd class where I also account for the variation?

set_prior(student_t(3, 0,  Region_sd)), class = "sd", coef = "Price", group = "Region") 

What would be the best way to define the model priors in order to define the variation among groups since in I can’t specify seperate priors for each beta coefficient of every Region?

Specifying a hierarchical model is setting a prior on the group-level betas. Specifically, it is setting them all to come from a normal distribution with mean zero and a variance to be estimated. Therefore, the prior on that variance is what will determine the extent to which you allow those coefficients to get away from zero. Small sd = all of them will stay close to zero, large sd = it will close to what you would get by running separate models on each subset of data.

By the way, I would be careful about removing the group level intercept. Doing so means that the price coefficient will be forced to absorb any variation across regions, even if it is not actually related to price.