Bayesian multilevel meta analysis


#1

Thank you for a great explanation on your package. I am currently trying to ‘go Bayesian’ with my meta-analysis but I am struggling with defining my prior distribution for the effect of mue. Simply, I have correlation coefficients as my effect sizes and I would like to set the prior for them (for the oveall effect of mue) as uniform with boundaries (-1, 1). This is how far I got:

brm <- brm(yi | se(sei) ~ 1 + (1|Study_ID), prior = set_prior(“uniform(-1,1)”, lb = -1, ub = 1), data = df, iter = 5000, warmup = 2000, cores = 4).

I received the following warning message:
Error: The following priors do not correspond to any model parameter:
<lower=-1,upper=1> b ~ uniform (-1,1)
Function ‘get_prior’ might be helpful to you.

Could you help me to figure out how to get it to work?

Thank you in advance for all your efforts!


#2

This isn’t a reply about brms, but we generally don’t recommend uniform priors on bounded intervals as they don’t work the way people expect them to bringing intuitions from maximum likelihood or MAP estimates. If there’s any mass near the boundaries, it will bias the estimates away from the boundaries rather than acting like “no information” in that interval as many users seem to expect.


#3

Please you the “brms” tag for brms related questions.

In the doc of set_prior I explained that the intercept has its own prior class named “Intercept”. That’s why your specification isn’t working. You may want to use 0 + intercept + (1|Study_ID) to make your prior work.

I still see two problem with that approach:

  1. The uniform prior will not apply to the Study_ID effects but only to the average correlation across studies.
  2. Averaging correlations is problematic if their magnitute varies substantially. I recommend apply the Fisher-Z transform and put theses transformed values into the meta-analysis.

#4

thank you for all your input! and for the super quick answera