Brms defult prior for beta coefficient and SD and intercept prior estimation

Hello! I have been perusing the default prior entries and they have been super helpful, both the questions and answers. I am working on a series of papers with a group of researchers, all of which have utilized brms to analyze the data. When I utilize the prior_summary function on the models that have been utilized I have consistently found that no prior is listed for the beta coefficients in the models. Am I missing something as to what these priors are? I had always assumed they would be something along the lines of a normal (0,5) or something.

However, my confidence in the assumption of a prior similar to the normal(0,5) for the beta coefficients becomes far less confidence when I learned about brms informing priors based on the data itself.

I have made a toy example that I hope to become more clear on the following questions:

  1. What is the beta coefficient prior?
  2. How are the student t priors created for the intercept and SD?
#load data
cars = cars

summary(cars)
#     speed           dist           speed.5         dist.5     
# Min.   : 4.0   Min.   :  2.00   Min.   : 2.0   Min.   : 1.00  
# 1st Qu.:12.0   1st Qu.: 26.00   1st Qu.: 6.0   1st Qu.:13.00  
 #Median :15.0   Median : 36.00   Median : 7.5   Median :18.00  
# Mean   :15.4   Mean   : 42.98   Mean   : 7.7   Mean   :21.49  
# 3rd Qu.:19.0   3rd Qu.: 56.00   3rd Qu.: 9.5   3rd Qu.:28.00  
# Max.   :25.0   Max.   :120.00   Max.   :12.5   Max.   :60.00

#create modified data to see change in sd and intercept priors
#cars$speed.5= cars$speed/2
#cars$dist.5 = cars$dist/2



model = brm(formula = dist ~ speed, 
             data    = cars,
             seed    = 123)

prior_summary(model)
#                   prior     class  coef group resp dpar nlpar bound
#1                                b                                  
#2                                b speed                            
#3 student_t(3, 36, 23.7) Intercept                                  
#4  student_t(3, 0, 23.7)     sigma 

### Proof of concept that sd and int change with the data:
model2 = brm(formula = dist.5 ~ speed.5, 
                 data    = cars,
                 seed    = 123,
             chains = 1,
             iter = 1)

prior_summary(model2)
#                   prior     class    coef group resp dpar nlpar bound
#1                                b                                    
#2                                b speed.5                            
#3 student_t(3, 18, 11.9) Intercept                                    
#4  student_t(3, 0, 11.9)     sigma  

Operating system: Windows 10
brms_2.13.0

If no priors are listed, this means a uniform prior is (implicitly) used.
You can double-check this by looking at the Stan code.
If the entry for a parameter in the result of the prior_summary is empty as here

then the prior for b is uniform and this parameter should not occur in the model block of the Stan code.

Thanks much for the reply, Do you happen to know the upper and lower bounds the uniform distrbution sets?

-/+ infinity.
I guess this prior so that results from brms used with default priors will be near identical to results from a maximum likelihood estimation. I would still recommend to use weakly informative priors.

About “scaling”: brms subtracts the mean from columns in the design matrix. But this does not influence the effect of priors.

1 Like

100%. The information was useful to understand what is going on with the the default priors being assigned.

Thanks for your time.