GOSH plot

Graphical display of study heterogeneity

MA
Pooled estimate against heterogeneity for every subset of studies, revealing clusters that point to influential studies or latent subgroups.
MAEstablished

GOSH plot example

GOSH plot of all 8,191 subsets of the 13 BCG trials (common-effect model): pooled log risk ratio against I². Blue points are subsets that include the TPT Madras trial, red points subsets that exclude it; margins show the distributions. Data: metadat::dat.bcg.
Family
Heterogeneity and influence
Purpose
Explore the structure of heterogeneity and find studies that split the evidence into clusters.
Inputs
Study estimates with standard errors.
Software
R metafor::gosh(), dmetar::gosh.diagnostics()

What it shows

The GOSH plot (Olkin, Dahabreh, and Trikalinos) refits the meta-analysis to every possible subset of the \(k\) studies, or to a large random sample of subsets when \(2^k - 1\) is too many, and plots each subset’s pooled estimate against its heterogeneity. If the studies were homogeneous the cloud would be a single, roughly symmetric blob. Separate clusters mean that the answer depends on which particular studies are included, and coloring subsets by whether they contain a given study shows which study drives the split.

How to read it

  • Horizontal axis: pooled estimate of the subset.
  • Vertical axis: a heterogeneity statistic, here \(I^2\).
  • Each point: one subset of studies.
  • Colors: subsets with or without a chosen study.
  • Marginal histograms: distributions of the pooled estimate and of \(I^2\).

Interpretation

The cloud splits cleanly by one trial. Subsets containing TPT Madras (blue) form tight clusters with log risk ratios between about −0.45 and 0 and very high \(I^2\), while subsets without it (red) spread from about −1.6 to −0.2. Heterogeneity is high almost everywhere: 97% of subsets have \(I^2\) above 50%. The large null trial is therefore the main reason the pooled effect is attenuated.

Pitfalls

  • The number of subsets grows exponentially; for more than about 15 studies use random subsets and report how many.
  • Clusters are exploratory. Detecting them by eye, or with clustering algorithms, invites over-interpretation.
  • Subsets of one or two studies have undefined or degenerate heterogeneity and pile up at \(I^2 = 0\).

Code

library(metafor)

data(dat.bcg, package = "metadat")
dat <- escalc(measure = "RR", ai = tpos, bi = tneg, ci = cpos, di = cneg,
              data = dat.bcg, slab = paste(author, year))

fit <- rma(yi, vi, data = dat, method = "EE")

# Fit the model to all 2^13 - 1 = 8191 subsets of studies
sav <- gosh(fit)

# Highlight subsets that contain the TPT Madras trial (study 8)
plot(sav, out = 8, col = c("#1d4e89", "#b5452b"),
     breaks = 60, cex = 0.4, alpha = 0.3)

References

  • Olkin I, Dahabreh IJ, Trikalinos TA. GOSH: a graphical display of study heterogeneity. Res Synth Methods. 2012;3:214-223. doi:10.1002/jrsm.1053
  • Viechtbauer W. GOSH plot. The metafor Package. metafor-project.org