Solved – Interpreting meta-regression outputs from metafor package

meta-analysismeta-regressionr

I have been using the metafor package for some meta-analyses and would like to adjust for a single continuous covariate (mean age) using meta-regression. However, I require some clarification regarding the outputs and what they mean. Below I have shared the output for the base case analysis as well as the meta-regression (same studies in both, with the only difference being the addition of covariates for the meta-regression).

Base case output

Random-Effects Model (k = 36; tau^2 estimator: DL)

  logLik  deviance       AIC       BIC      AICc  
-18.8613   60.5927   41.7226   44.8896   42.0862  

tau^2 (estimated amount of total heterogeneity): 0.0633 (SE = 0.0327)
tau (square root of estimated tau^2 value):      0.2515
I^2 (total heterogeneity / total variability):   51.46%
H^2 (total variability / sampling variability):  2.06

Test for Heterogeneity: 
Q(df = 35) = 72.1031, p-val = 0.0002

Model Results:

estimate       se     zval     pval    ci.lb    ci.ub          
  0.1266   0.0633   2.0014   0.0453   0.0026   0.2506        * 

---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Meta-regression (output)

Mixed-Effects Model (k = 36; tau^2 estimator: DL)

  logLik  deviance       AIC       BIC      AICc  
-18.7696   60.4092   43.5391   48.2897   44.2891  

tau^2 (estimated amount of residual heterogeneity):     0.0677 (SE = 0.0346)
tau (square root of estimated tau^2 value):             0.2601
I^2 (residual heterogeneity / unaccounted variability): 52.84%
H^2 (unaccounted variability / sampling variability):   2.12
R^2 (amount of heterogeneity accounted for):            0.00%

Test for Residual Heterogeneity: 
QE(df = 34) = 72.1024, p-val = 0.0001

Test of Moderators (coefficient(s) 2): 
QM(df = 1) = 0.2456, p-val = 0.6202

Model Results:

         estimate      se     zval    pval    ci.lb   ci.ub   
intrcpt   -0.3741  1.0140  -0.3690  0.7122  -2.3616  1.6133   
mods       0.0085  0.0172   0.4955  0.6202  -0.0252  0.0423   

---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

My questions are:

  1. Why are we observing an R-squared of 0% in the meta-regression (is it simply because the covariate is not significant or do you suspect something is not correct)?

  2. How can we interpret the outputs of the meta-regression? With back-transformation of the logHRs we suspect something like below, but would like to make sure that I am interpreting the ‘intrcpt’ and ‘mods’ values correctly.

    • I have assumed mods represents the pooled HR taking into account the adjustment for age.

    • I have assumed intrcpt represents the covariate effect (beta) – i.e. the amount that the logHR changes for a one unit increase in age. Also, I have back-transformed this output, which I am not sure is appropriate, or if I should present as is.

Best Answer

(1) Why are we observing an R-squared of 0% in the meta-regression (is it simply because the covariate is not significant or do you suspect something is not correct)?

It is likely that you're observing $R^2 = 0$ because the model fits the data badly (i.e., there's no evidence that mean age has any relationship to the outcome). It is always a good idea to plot your model along with your data when you can. A plot can help you do a visual sanity check that the data tends to follow your regression line. Since you have just a single moderator, it would be fairly easy to make a scatter plot. Here is a metafor example with code you can use. Looking at your base case, the estimated amount of total heterogeneity ($\tau$) is pretty much equal to the estimated amount of residual heterogeneity in the meta-regression, so the addition of the mean age covariate hasn't explained any of the variability between studies.

(2.1) I have assumed mods represents the pooled HR taking into account the adjustment for age.

Mods (0.0085) represents the estimated change in the true logHR for each one unit increase in mean age. However, the p-value is high (and the $95\%$ confidence interval is [-0.0252, 0.0423]) indicating that you don't have significant evidence that this effect is any different from 0.

(2.2) I have assumed intrcpt represents the covariate effect (beta) – i.e. the amount that the logHR changes for a one unit increase in age. Also, I have back-transformed this output, which I am not sure is appropriate, or if I should present as is.

Intrcpt represents the pooled logHR when the mean age is 0. It does not really make sense to interpret the intercept on its own since a mean age of 0 is not physically plausible. Back-transforming the output is fine (using the exponential function to place the estimate on the HR scale).

As a side note, be cautious about how you approach a meta-regression. If you do try out many different covariates and then stop when you find a significant one, then you should report that this is what you did, because it reduces the significance of your evidence (after all, 5 out of every 100 covariates will appear significant (p < 0.05) just by chance alone, so trying too many covariates increases the probability that you detect an effect when none is truly present).

Related Question