C Evidence synthesis and measurements with error - Extended
C.1 What happens if we set sigma = TRUE
in resp_se()
function in brms
?
If we modify the meta-analysis brms
model in section 11.1.1.1 by setting sigma = TRUE
in the resp_se()
function, we won’t be able to get estimates for \(\zeta_{n}\). This is because these estimates will be handled implicitly. The model presented formally in Equation (11.1), repeated here as (C.1) is equivalent to the one in Equation (C.2). A critical difference is that \(\zeta_n\) does not appear any more.
\[\begin{equation} \begin{aligned} \text{effect}_n \sim & \mathit{Normal}(\zeta_n, SE_n) \\ \zeta_n \sim & \mathit{Normal}(\zeta, \tau) \\ \zeta \sim & \mathit{Normal}(0,100)\\ \tau \sim & \mathit{Normal}_+(0,100) \end{aligned} \tag{C.1} \end{equation}\]
\[\begin{equation} \begin{aligned} \text{effect}_n \sim &\mathit{Normal}(\zeta, \sqrt{\tau^2 + SE_n^2} )\\ \zeta \sim &\mathit{Normal}(0,100)\\ \tau \sim &\mathit{Normal}_+(0,100) \end{aligned} \tag{C.2} \end{equation}\]
where \(n=1,\dots, N_{studies}\)
This works because of the following property of normally distributed random variables:
If \(X\) and \(Y\) are two independent random variables, and
\[\begin{equation} \begin{aligned} X &\sim \mathit{Normal}(\mu_X, \sigma_X)\\ Y &\sim \mathit{Normal}(\mu_Y, \sigma_Y) \end{aligned} \tag{C.3} \end{equation}\]
then, \(Z\), the sum of these two random variables is:
\[\begin{equation} Z = X + Y \tag{C.4} \end{equation}\]
The distribution of \(Z\) has the following form:
\[\begin{equation} Z \sim\mathit{Normal}\left(\mu_X + \mu_Y, \sqrt{\sigma_X^2 + \sigma_Y^2}\right) \tag{C.5} \end{equation}\]
In our case, let
\[\begin{equation} \begin{aligned} U_{n} &\sim \mathit{Normal}(0 , SE_n)\\ \zeta_n &\sim \mathit{Normal}(\zeta, \tau) \end{aligned} \tag{C.6} \end{equation}\]
Analogous to Equations (C.4) and (C.5), effect\(_n\) can be expressed as a sum of two independent random variables:
\[\begin{equation} \text{effect}_n = U_n + \zeta_n \end{equation}\]
The distribution of effect\(_n\) will be
\[\begin{equation} \text{effect}_n \sim\mathit{Normal}\left(\zeta, \sqrt{SE^2 + \tau^2}\right) \tag{C.7} \end{equation}\]
We can fit this in brms
as follows. In this model specification, one should not include the + (1 | study_id)
, and the prior for \(\tau\) should now be specified for sigma
.
c(prior(normal(0, 100), class = Intercept),
priors2 <-prior(normal(0, 100), class = sigma))
brm(effect | resp_se(`SE`, sigma = TRUE) ~ 1,
fit_sbi_sigma <-data = df_sbi,
prior = priors2,
control = list(adapt_delta = .99,
max_treedepth = 10))
There are slight differences with fit_sbi
from section 11.1.1.1 due to the different parameterization and the sampling process, but the results are very similar:
posterior_summary(fit_sbi_sigma,
variable = c("b_Intercept", "sigma"))
## Estimate Est.Error Q2.5 Q97.5
## b_Intercept 13.4 7.17 2.051 30.2
## sigma 12.2 8.36 0.745 32.0
Compare this with the original model:
brm(effect | resp_se(`SE`, sigma = FALSE) ~
fit_sbi <- 1 + (1 | study_id),
data = df_sbi,
prior = priors,
control = list(adapt_delta = .99, max_treedepth = 10))
posterior_summary(fit_sbi,
variable = c("b_Intercept", "sigma"))
## Estimate Est.Error Q2.5 Q97.5
## b_Intercept 13.3 6.23 2.62 27.1
## sigma 0.0 0.00 0.00 0.0
If we are not interested in the underlying effects in each study, this parameterization of the meta-analysis can be faster and more robust (i.e., it has less potential convergence issues). A major drawback is that we can no longer display a forest plot as we do in Figure 11.1.