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

Dose-response

Outcome as a function of a continuous exposure, such as hospital volume.

1

What it is

Some questions are not about two groups but about a gradient: does mortality fall as hospital volume rises, and is the fall steady or does it level off? Each study then reports several exposure categories (for example, 1-10, 11-30 and more than 30 cases a year), each compared with the same reference category.

A study contributes a curve, not one number. Its estimates share the reference group, so they are correlated; the Greenland-Longnecker method rebuilds that correlation from the cases and totals in each category. Each category is represented by its midpoint.

The curves are pooled in two stages. A linear model gives the change in risk per unit of exposure; a restricted cubic spline lets the curve bend, and a Wald test of the spline terms says whether it departs from a straight line.

Worked exampleVolume and mortality, AAA repair
EstimateP or 95% CI
Slope per case a year−0.0102P = 0.011
Non-linearityspline termsP = 0.32
OR, 90th vs 10th percentile0.650.44-0.96
Higher volume, lower mortalitya steady, roughly linear declineNo threshold can be claimedthe curve does not flatten within the observed range

6 studies, 202,212 patients, from one of my reviews.

2

When to use it

Use it when

  • The exposure is quantitative and has many levels: hospital or surgeon volume, drug dose, duration of treatment.
  • Each study reports at least 3 exposure categories, with cases and totals (or person-time) in each.
  • The question is about the shape of the relation, or about the effect at clinically meaningful levels of exposure.

Choose another tool when

  • Studies only compare high with low exposure: use pairwise binary outcomes, knowing that the cut-offs differ between studies.
  • The covariate is a study-level summary, such as the mean dose of each trial: use meta-regression.
  • Category sizes cannot be reported or derived: the covariance cannot be reconstructed, and the study cannot enter the dose-response model.
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.

# dat: one row per category; reference row has logrr = 0
lin <- dosresmeta(logrr ~ dose, id = id, se = se,
                   = "cc", cases = cases, n = n, data = dat,
                   = "gl",  = "reml")

knots <- quantile(dat$dose,  = c(0.10, 0.50, 0.90))
spl <- dosresmeta(logrr ~ rcs(dose, knots), id = id, se = se,
                  type = "cc", cases = cases, n = n, data = dat,
                  covariance = "gl", method = "reml")
# test for non-linearity
waldtest(b = coef(spl), Sigma = vcov(spl), Terms = 2)

# curve: see section 4
4

The dose-response curve, parameter by parameter

These arguments change only how the result is shown, not the result itself. Click one to see the options.

grid <- data.frame(dose = seq(0,  = 110, by = 1))
pred <- cbind(grid, predict(spl, newdata = grid,
                             = 0, expo = TRUE))

ggplot(pred, aes(dose, pred)) +
  geom_ribbon(aes(ymin = ci.lb, ymax = ci.ub),
               = "grey90") +
  geom_line(linewidth = 1) +
  geom_hline(yintercept = 1, linetype = "dashed") +
  labs(x = "Hospital volume (cases/year)", y = "Odds ratio")
5

How to read the results

The shape

  • Look at the Wald test for non-linearity: a non-significant test favours the simpler linear model.
  • Show both curves, linear and spline, so the reader sees how similar they are.
  • Do not draw beyond the observed range of exposure.

The effect

  • Report the slope per clinically meaningful unit (per 10 cases a year, per 1 mg/kg).
  • Contrast fixed points, such as the 90th versus the 10th percentile, rather than arbitrary thresholds.
  • A minimum of the curve near the edge of the data is not an optimal threshold.

Heterogeneity

  • Dose-response models often show high heterogeneity: report it.
  • Explore it with meta-regression of the study-specific slopes.
  • Remember that categories and midpoints differ between studies, an extra source of error.
6

In my work

The main result of a published dose-response review, next to the calls behind it. Click the figure to enlarge it.

Hospital volume and overall mortality after elective AAA repair6 studies, 202,212 patients. Linear β = −0.0102 (P = 0.011); non-linearity P = 0.32; I² = 90.9%. From Ann Vasc Surg, 2026 ↗
lin <- dosresmeta(logrr ~ dose, ...)  # linear trend
spl <- dosresmeta(logrr ~ rcs(dose, knots),
                  ...)                # spline, 3 knots
waldtest(coef(spl), vcov(spl),
         Terms = 2)                   # P = 0.32

pred <- predict(spl, newdata = grid,
                xref = 0, expo = TRUE) # OR vs 0
7

References

  1. Greenland S, Longnecker MP. Methods for trend estimation from summarized dose-response data, with applications to meta-analysis. Am J Epidemiol. 1992;135:1301-1309.
  2. Orsini N, Li R, Wolk A, Khudyakov P, Spiegelman D. Meta-analysis for linear and nonlinear dose-response relations: examples, an evaluation of approximations, and software. Am J Epidemiol. 2012;175:66-73.
  3. Crippa A, Orsini N. Multivariate dose-response meta-analysis: the dosresmeta R package. J Stat Softw. 2016;72(Code Snippet 1):1-15.
  4. Hamling J, Lee P, Weitkunat R, Ambühl M. Facilitating meta-analyses by deriving relative effect and precision estimates for alternative comparisons from a set of estimates presented by exposure level or disease category. Stat Med. 2008;27:954-970.
  5. Harrell FE. Regression Modeling Strategies. 2nd ed. Springer; 2015.