Lucas Monteiro DelgadoMD candidate · UFMG, Brazil
Toolkit · 07 of 13

Meta-regression

Effect sizes regressed on continuous study-level covariates, such as dose or year.

1

What it is

Meta-regression extends subgroup analysis to continuous characteristics. The effect size of each study is regressed on a study-level covariate, such as the dose used, the mean age of the patients or the year of publication, with more weight for more precise studies.

The slope says how much the effect changes for each unit of the covariate. In a random-effects meta-regression, the model also estimates the residual heterogeneity: the variation that the covariate does not explain.

As with subgroups, the comparison is between studies, not between patients: a relation between the mean age of each study and its effect does not show that older patients respond differently (ecological bias). It needs enough studies, roughly 10 for each covariate.

Worked exampleTXA dose and blood loss
EstimateP
Slope, per mg/kg+5.4 mL0.30
Residual I²92.6%<0.001
The slope is small and not significantno evidence that higher doses reduce blood loss moreResidual heterogeneity stays highdose does not explain why the trials differ

From the meta-regression of my tranexamic acid review.

2

When to use it

Use it when

  • The covariate is continuous and was pre-specified: dose, mean age, proportion of men, follow-up, year of publication.
  • There are about 10 or more studies for each covariate in the model.
  • There is heterogeneity to explain, and a clinical reason to expect that the covariate modifies the effect.

Choose another tool when

  • The covariate is categorical, such as design or type of procedure: use subgroup analysis.
  • There are fewer than 10 studies: the slope is unstable and false positives are common.
  • The question is about patients, not studies (do older patients benefit less?): study-level means cannot answer it; it needs individual patient data.
3

The template, parameter by parameter

Click a highlighted argument to see what it does and which values to use. Picking a value updates the code.

# m: the model from the pairwise binary or continuous tool
mr <- metareg(m,
               = ~ dose,
               = "REML",
               = TRUE)

# bubble plot: see section 4
4

The bubble plot, parameter by parameter

Each study is a bubble whose size reflects its weight; the line is the fitted meta-regression. Click a highlighted argument to see the options.

png("bubble.png", width = 5500, height = 3300, res = 500)
bubble(mr,
        = TRUE,
       cex.studlab = 0.6,  = 3,
        = "navyblue",
        = TRUE,
       xlab = "Mean dose, mg/kg",
       ylab = "Mean difference")
dev.off()
5

How to read the results

The slope

  • The coefficient is the change in the effect per unit of the covariate, with its confidence interval and P value.
  • For ratios, the slope is on the log scale: exponentiate it to read it as a ratio per unit.
  • A non-significant slope does not prove there is no relation; with few studies the test has little power.

Heterogeneity

  • Residual I² and the test for residual heterogeneity show what remains unexplained.
  • R² shows the proportion of the between-study variance explained by the covariate.
  • If heterogeneity barely falls, look for other explanations.

Caution

  • One extreme study can drive the line: check the bubble plot, as in my example where one trial sits far from the others.
  • Pre-specify covariates and keep them few.
  • Associations across studies are observational and prone to ecological bias.
6

In my work

Two meta-regressions from a published review, next to the call behind them. In both, one trial with a very large blood loss sits far below the others. Click a figure to enlarge it.

Blood loss by tranexamic acid doseSlope +5.4 mL per mg/kg (P = 0.30); residual I² 92.6%. From JAMA Surg, 2026 ↗
mr <- metareg(m,       # blood loss model
              ~ dose)  # mean infused dose, mg/kg

bubble(mr,
       studlab = TRUE,   # label studies
       bg = "navyblue")  # bubble colour
Blood loss by publication yearSlope +2.0 mL per year (P = 0.14); residual I² 84.5%. From JAMA Surg, 2026 ↗
mr <- metareg(m,       # blood loss model
              ~ year)  # publication year

bubble(mr,
       studlab = TRUE,   # label studies
       bg = "navyblue")  # bubble colour
7

References

  1. Higgins JPT, Thomas J, Chandler J, et al. Cochrane Handbook for Systematic Reviews of Interventions, version 6.5. Cochrane; 2024. Chapter 10.11 (investigating heterogeneity).
  2. Thompson SG, Higgins JPT. How should meta-regression analyses be undertaken and interpreted? Stat Med. 2002;21:1559-1573.
  3. Higgins JPT, Thompson SG. Controlling the risk of spurious findings from meta-regression. Stat Med. 2004;23:1663-1682.
  4. Knapp G, Hartung J. Improved tests for a random effects meta-regression with a single covariate. Stat Med. 2003;22:2693-2710.
  5. Viechtbauer W. Conducting meta-analyses in R with the metafor package. J Stat Softw. 2010;36(3):1-48.