Q decomposition plot

Design-by-treatment decomposition of Cochran’s Q

NMA
Cochran’s Q split into within-design heterogeneity and between-design inconsistency, with the contribution of each design.
NMAEstablished

Q decomposition plot example

Decomposition of Cochran’s Q for the diabetes network (common-effect model) into within-design heterogeneity and between-design inconsistency, with each design’s contribution. Data: netmeta::Senn2013.
Family
Inconsistency
Purpose
Separate heterogeneity from inconsistency and see which designs contribute to each.
Inputs
A fitted network meta-analysis.
Software
R netmeta::decomp.design() with ggplot2; Stata network meta inconsistency

What it shows

The total Cochran’s Q of a network meta-analysis can be split into two parts (Krahn and colleagues): heterogeneity among studies of the same design, and inconsistency between designs, which corresponds to the design-by-treatment interaction model of Higgins and colleagues. Plotting each design’s contribution to both parts shows where the global signal comes from.

How to read it

  • Right panel: contribution of each design to within-design heterogeneity.
  • Left panel: contribution of each design to between-design inconsistency (from detaching it).
  • Subtitle: total, heterogeneity, and inconsistency Q with the global test of inconsistency.

Interpretation

Total Q is 97.0, of which 74.5 is heterogeneity within designs (mostly among the metformin and rosiglitazone versus placebo trials) and 22.5 is inconsistency between designs (df = 7, \(p = 0.002\)). The inconsistency is concentrated in the two sulfonylurea comparisons, in line with the net heat plot.

Pitfalls

  • A non-significant global test does not prove consistency; it has low power.
  • Under a common-effect model, heterogeneity inflates the inconsistency test; random-effects versions are also available.
  • Contributions of detached designs are not additive.

Code

library(netmeta)
library(ggplot2)

data(Senn2013)

net <- netmeta(
  TE, seTE, treat1.long, treat2.long, studlab,
  data = Senn2013, sm = "MD",
  common = TRUE, reference.group = "Placebo"
)

# Decompose Cochran's Q into within-design heterogeneity and
# between-design inconsistency, and show each design's contribution
dd <- decomp.design(net)
het <- dd$Q.het.design
inc <- dd$Q.inc.design
d <- rbind(
  data.frame(design = het$design, Q = het$Q, part = "Within-design heterogeneity"),
  data.frame(design = names(inc), Q = as.numeric(inc), part = "Between-design inconsistency")
)
d <- d[d$Q > 0.01, ]
d$design <- factor(d$design, levels = unique(d$design[order(d$Q)]))

ggplot(d, aes(Q, design, fill = part)) +
  geom_col(width = 0.7) +
  facet_wrap(~ part, scales = "free") +
  scale_fill_manual(values = c("#b5452b", "#1d4e89"), guide = "none") +
  labs(x = "Contribution to Q", y = "Design",
       title = "Decomposition of Cochran's Q by design",
       subtitle = sprintf("Q total = %.1f; heterogeneity = %.1f; inconsistency = %.1f (df = %d, p = %.3f)",
                          dd$Q.decomp$Q[1], dd$Q.decomp$Q[2], dd$Q.decomp$Q[3],
                          dd$Q.decomp$df[3], dd$Q.decomp$pval[3]))

References

  • Krahn U, Binder H, König J. A graphical tool for locating inconsistency in network meta-analyses. BMC Med Res Methodol. 2013;13:35. doi:10.1186/1471-2288-13-35
  • Higgins JPT, Jackson D, Barrett JK, Lu G, Ades AE, White IR. Consistency and inconsistency in network meta-analysis: concepts and models for multi-arm studies. Res Synth Methods. 2012;3:98-110. doi:10.1002/jrsm.1044