Evidence flow diagram

Flow network of a network estimate, hat matrix flow

NMA
For one network estimate, arrows show how much evidence flows through each direct comparison, exposing the indirect paths behind the result.
NMASpecialized

Evidence flow diagram example

Evidence flow for the random-effects network estimate of metformin versus rosiglitazone in the diabetes network. Arrow width and labels give the share of the aggregate hat matrix row carried by each direct comparison; flows leave metformin and arrive at rosiglitazone. Data: netmeta::Senn2013.
Family
Network geometry and evidence flow
Purpose
Explain where a network estimate’s information comes from.
Inputs
The aggregate hat matrix of a network meta-analysis.
Software
R netmeta::hatmatrix() and igraph (shown), netmeta::netcontrib(); CINeMA

What it shows

König, Krahn, and Binder showed that a row of the aggregate hat matrix of a network meta-analysis defines a flow through the network: evidence leaves one treatment, travels along direct comparisons, and arrives at the other, conserving the total like current in an electrical circuit. Drawing that flow as a directed graph makes visible which indirect paths contribute to one estimate, and how much, which is invisible in a standard network graph.

How to read it

  • Nodes: treatments; the two being compared are highlighted.
  • Arrows: direction of evidence flow along each direct comparison.
  • Width and labels: size of the flow (hat matrix entry).
  • Missing arrows: comparisons that contribute nothing to this estimate.

Interpretation

About a third of the flow from metformin to rosiglitazone travels along their direct comparison. The largest route runs through placebo (metformin to placebo, then placebo to rosiglitazone), and smaller streams pass through pioglitazone, sulfonylurea, and acarbose. The estimate therefore depends heavily on the placebo-controlled trials, and any bias in them propagates to this head-to-head comparison.

Pitfalls

  • Flows are a decomposition of statistical information, not probabilities that a path is correct.
  • Different decompositions (shortest path, random walk, Davies’ aggregate hat matrix) give somewhat different numbers.
  • With multi-arm trials the aggregate hat matrix is an approximation.

Code

library(netmeta)
library(igraph)

data(Senn2013)

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

# Row of the aggregate hat matrix for one network estimate: the flow of
# evidence along each direct comparison into the estimate of Metformin vs
# Rosiglitazone (flows leave Metformin and arrive at Rosiglitazone)
H <- hatmatrix(net, method = "Davies", type = "long")$random
target <- "Metformin:Rosiglitazone"
flow <- H[target, ]
edges <- do.call(rbind, strsplit(names(flow), ":"))

# Orient every edge in the direction evidence flows (positive weight)
from <- ifelse(flow >= 0, edges[, 1], edges[, 2])
to <- ifelse(flow >= 0, edges[, 2], edges[, 1])
g <- graph_from_data_frame(data.frame(from, to, w = abs(flow)),
                           vertices = net$trts)
g <- delete_edges(g, E(g)[w < 0.005])

set.seed(3)
layout <- layout_in_circle(g, order = V(g)[order(V(g)$name)])
highlight <- V(g)$name %in% c("Metformin", "Rosiglitazone")
par(mar = c(1, 1, 3, 1))
plot(g, layout = layout,
     edge.width = 1 + 22 * E(g)$w, edge.arrow.size = 0.6,
     edge.color = adjustcolor("#1d4e89", 0.75),
     edge.label = sprintf("%.0f%%", 100 * E(g)$w), edge.label.cex = 0.95,
     edge.label.color = "#1b1f24", edge.label.family = "Helvetica Neue",
     vertex.color = ifelse(highlight, "#b5452b", "#f4f2ed"),
     vertex.frame.color = ifelse(highlight, "#b5452b", "#7a828c"),
     vertex.size = 22, vertex.label.cex = 0.8, vertex.label.family = "Helvetica Neue",
     vertex.label.color = ifelse(highlight, "white", "#1b1f24"))
title("Evidence flow for Metformin vs Rosiglitazone", cex.main = 1.1)

References

  • König J, Krahn U, Binder H. Visualizing the flow of evidence in network meta-analysis and characterizing mixed treatment comparisons. Stat Med. 2013;32:5414-5429. doi:10.1002/sim.6001
  • Davies AL, Papakonstantinou T, Nikolakopoulou A, Rücker G, Galla T. Network meta-analysis and random walks. Stat Med. 2022;41:2091-2114. doi:10.1002/sim.9346