Method-comparison forest plot

Sensitivity forest across ITC methods, NMI adjusted-method forest

ITC
MAIC
STC
ML-NMR
NMI
ML-UMR
The same treatment comparison estimated by several indirect comparison methods, stacked as forest rows, often against a known truth.

Method-comparison forest plot example

One A vs B hazard ratio estimated by naive, Bucher, MAIC, STC, aggregate-data NMR, NMI, and ML-NMR approaches, with the true target-population effect (dashed). Illustrative, simulated values.
Family
Effect display
Purpose
Compare how estimates change across methods and assumptions, in applications or simulation studies.
Inputs
Point estimates and intervals from each method, and the true value when simulated.
Software
Custom ggplot2; maicplus::maic_forest_plot() for MAIC-based variants

What it shows

Health technology assessment submissions and methods papers often report one comparison several ways: naive, anchored (Bucher), weighted (MAIC), regression-based (STC or G-computation), network meta-regression, NMI, and ML-NMR. Stacking these as rows of a forest plot shows at a glance how much the answer depends on the method. In simulation studies, a vertical line marks the true effect in the target population, and the plot becomes a direct display of bias and precision. The NMI proof-of-concept literature presented its simulations this way, with methods on the vertical axis and the simulation truth as reference.

How to read it

  • Rows: methods, ideally ordered from least to most adjusted.
  • Points and whiskers: estimate and 95% confidence or credible interval.
  • Dashed line: true effect (simulation only).
  • Annotations: diagnostics that qualify a row, such as the MAIC effective sample size.

Interpretation

In this scenario the naive and Bucher estimates overstate the benefit of A because an effect modifier is imbalanced between trials. Methods that adjust for it (MAIC, STC, NMI, ML-NMR) cluster around the true value; MAIC does so with the widest interval, reflecting the loss of effective sample size.

Pitfalls

  • Agreement between methods that share assumptions (for example, the same set of adjusted covariates) is not independent confirmation.
  • A simulation shows performance under the simulated data-generating mechanism only; it does not validate the assumptions in a real application.
  • Methods can target different estimands (conditional vs marginal, different target populations); rows are only comparable if the estimand is the same.

Code

library(ggplot2)

# Illustrative estimates of one A vs B log hazard ratio from different
# indirect comparison methods, in a scenario where the truth is known
res <- data.frame(
  method = c("Naive (unadjusted)", "Bucher (anchored)", "MAIC", "STC (G-computation)",
             "NMR (aggregate data)", "NMI", "ML-NMR"),
  est = c(-0.62, -0.51, -0.33, -0.36, -0.44, -0.35, -0.34),
  se = c(0.12, 0.17, 0.24, 0.19, 0.18, 0.20, 0.17),
  note = c("", "", "ESS = 118 of 500", "", "", "", "")
)
res$method <- factor(res$method, levels = rev(res$method))
res$lo <- res$est - 1.96 * res$se
res$hi <- res$est + 1.96 * res$se
truth <- -0.35

ggplot(res, aes(x = est, y = method)) +
  geom_vline(xintercept = 0, colour = "#7a828c") +
  geom_vline(xintercept = truth, colour = "#c28a00", linetype = "dashed", linewidth = 0.8) +
  annotate("text", x = truth, y = Inf, label = "true population effect", colour = "#9a6700",
           hjust = -0.05, vjust = 1.2, size = 3.5) +
  geom_errorbar(aes(xmin = lo, xmax = hi), width = 0.2, orientation = "y", colour = "#1d4e89", linewidth = 0.7) +
  geom_point(shape = 15, size = 3.2, colour = "#1d4e89") +
  geom_text(aes(x = 0.25, label = note), hjust = 0, size = 3.2, colour = "#5b636e") +
  scale_x_continuous(breaks = log(c(0.3, 0.5, 0.7, 1, 1.4)),
                     labels = c(0.3, 0.5, 0.7, 1, 1.4), limits = c(-1.1, 0.75)) +
  coord_cartesian(clip = "off") +
  labs(x = "Hazard ratio, A vs B (log scale)", y = NULL,
       title = "Same comparison, different methods",
       subtitle = "Population adjustment moves the estimate toward the target-population truth",
       caption = "Illustrative, simulated values")

References

  • Phillippo DM, Dias S, Ades AE, Welton NJ. Assessing the performance of population adjustment methods for anchored indirect comparisons: a simulation study. Stat Med. 2020;39:4885-4911. doi:10.1002/sim.8759
  • Harari O, Soltanifar M, Cappelleri JC, et al. Network meta-interpolation: effect modification adjustment in network meta-analysis using subgroup analyses. Res Synth Methods. 2023;14:211-233. doi:10.1002/jrsm.1608
  • Remiro-Azócar A, Heath A, Baio G. Methods for population adjustment with limited access to individual patient data: a review and simulation study. Res Synth Methods. 2021;12:750-775. doi:10.1002/jrsm.1511