L’Abbé plot

Treatment risk versus control risk plot

MA
Event risk in the treatment arm against event risk in the control arm, one point per study, around the line of equality.
MAEstablished

L’Abbé plot example

L’Abbé plot of the BCG trials on log-log axes. Circle area reflects study size; the gray diagonal is the line of no effect and the dotted red line the pooled random-effects risk ratio. Data: metadat::dat.bcg.
Family
Effect display
Purpose
Explore heterogeneity and its relation to baseline risk in binary-outcome meta-analyses.
Inputs
Event counts and sample sizes in both arms of each study.
Software
R meta::labbe(), metafor::labbe(); Stata meta labbeplot

What it shows

The L’Abbé plot places each trial at the event risk in its control arm (horizontal) and its intervention arm (vertical). Trials below the diagonal favor the intervention when events are harmful. Because both arms are shown rather than only their contrast, the plot exposes how effects relate to baseline risk and whether a ratio or a difference measure describes the data better.

How to read it

  • Horizontal axis: control-group event risk.
  • Vertical axis: intervention-group event risk.
  • Diagonal: equal risks, no effect.
  • Circle area: sample size or precision.
  • Dotted line: the pooled effect. A constant risk ratio is a straight line through the origin on linear axes and a line parallel to the diagonal on log axes.

Interpretation

Most BCG trials fall below the diagonal, and the vertical distance to it varies widely, which is the heterogeneity seen in the forest plot. Trials with control risks below about 1% (Comstock 1976, Comstock and Webster) sit near or above the diagonal, while high-risk settings show large benefits, consistent with the latitude gradient explored in the bubble plot.

Pitfalls

  • Observed control risk contains sampling error that is correlated with the treatment effect estimate. A visual trend with baseline risk can therefore be partly artifact; formal analysis needs methods that model the true baseline risk.
  • Small studies with zero events are hard to show on log axes.
  • The plot does not use the pooling weights; large circles only suggest them.

Code

library(meta)
options(scipen = 10)

data(dat.bcg, package = "metadat")

m <- metabin(
  event.e = tpos, n.e = tpos + tneg,
  event.c = cpos, n.c = cpos + cneg,
  studlab = paste(author, year),
  data = dat.bcg, sm = "RR",
  common = FALSE, random = TRUE, method.tau = "REML"
)

# Intervention risk against control risk; circle area reflects study size
labbe(
  m,
  studlab = TRUE, cex.studlab = 0.65,
  bg = "#9fb3c8", col = "#1d4e89",
  col.random = "#b5452b", lwd.random = 2,
  xlab = "Risk in control group (log scale)",
  ylab = "Risk in vaccine group (log scale)",
  log = "xy", xlim = c(0.0004, 0.3), ylim = c(0.0004, 0.3)
)
meta esize tpos tneg cpos cneg, esize(lnrratio)
meta labbeplot

References