7.2 Assessing the heterogeneity of your pooled effect size
Thankfully, once you’ve already pooled your effects in meta-analysis using the metafor()
function, it is very easy and straightforward to retrieve the three most common heterogeneity measures that we described before.
In Chapter 5.2, we already showed you how to conduct a random-effect-model meta-analysis. In this example, we stored our results in the object m_re
, which we will use again here.
One way to get heterogeneity measures of my meta-analysis is to print the meta-analysis (in my case, m_re
) output again. Just running the name of an object calls the print()
method for that object; notice that these two commands do the same thing:
m_re
##
## Random-Effects Model (k = 56; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0570 (SE = 0.0176)
## tau (square root of estimated tau^2 value): 0.2388
## I^2 (total heterogeneity / total variability): 67.77%
## H^2 (total variability / sampling variability): 3.10
##
## Test for Heterogeneity:
## Q(df = 55) = 156.9109, p-val < .0001
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.2393 0.0414 5.7805 <.0001 0.1581 0.3204 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
print(m_re)
##
## Random-Effects Model (k = 56; tau^2 estimator: REML)
##
## tau^2 (estimated amount of total heterogeneity): 0.0570 (SE = 0.0176)
## tau (square root of estimated tau^2 value): 0.2388
## I^2 (total heterogeneity / total variability): 67.77%
## H^2 (total variability / sampling variability): 3.10
##
## Test for Heterogeneity:
## Q(df = 55) = 156.9109, p-val < .0001
##
## Model Results:
##
## estimate se zval pval ci.lb ci.ub
## 0.2393 0.0414 5.7805 <.0001 0.1581 0.3204 ***
##
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
We see that this output already provides us with all three heterogeneity measures (and even one more, H^2, which we will not cover here).
\(\tau^{2}\), as we can see from the
tau^2
output, is 0.0570.\(I^{2}\) is printed next to
I^2
, and has the value 67.77%.The value of \(Q\) is displayed next to
Q
underTest for heterogeneity:
. As we can see, the value is 156.9109. In our case, this is significant (\(p < 0.001\); seep-value
).We can also obtain a prediction interval, which we plotted in the forest plot, by running
predict(m_re)
. As we can see, the 95% prediction interval (cr.lb
andcr.ub
) ranges from g=-0.2358 to 0.7143. It is calculated simply as \(\hat{\mu} \pm 1.96 * \hat{\tau}\): The estimated summary effect, with a 95% window based on the estimated standard deviation of the true effect.
How can we interpret the values of this example analysis? Well, all of our indicators suggest that moderate to substantial heterogeneity is present in our data. Given the broad prediction interval, which stretches well below zero, we also cannot be overly confident that the positive effect we found for our interventions is robust in every context. It might be very well possible that the intervention does not yield positive effects in some future scenarios; even a small negative effect might be possible based on the evidence the meta-analysis gives us. Very high effect sizes, on the other hand, are possible too.