netmeta (version 1.2-1)

funnel.netmeta: ‘Comparison-adjusted’ funnel plot

Description

Draw a ‘comparison-adjusted’ funnel plot to assess funnel plot asymmetry in network meta-analysis.

Usage

# S3 method for netmeta
funnel(
  x,
  order,
  pooled = ifelse(x$comb.random, "random", "fixed"),
  xlab,
  level = x$level,
  pch,
  col = "black",
  legend = TRUE,
  linreg = FALSE,
  rank = FALSE,
  mm = FALSE,
  pos.legend = "topright",
  pos.tests = "topleft",
  text.linreg = "(Egger)",
  text.rank = "(Begg-Mazumdar)",
  text.mm = "(Thompson-Sharp)",
  sep.trts = x$sep.trts,
  nchar.trts = x$nchar.trts,
  backtransf = x$backtransf,
  digits.pval = gs("digits.pval"),
  ...
)

Arguments

x

An object of class netmeta.

order

A mandatory character or numerical vector specifying the order of treatments (see Details).

pooled

A character string indicating whether results for the fixed effect ("fixed") or random effects model ("random") should be plotted. Can be abbreviated.

xlab

A label for the x-axis.

level

The confidence level utilised in the plot. For the funnel plot, confidence limits are not drawn if yaxis = "size".

pch

The plotting symbol(s) used for individual studies within direct comparisons.

col

The colour(s) used for individual studies within direct comparisons.

legend

A logical indicating whether a legend with information on direct comparisons should be added to the plot.

linreg

A logical indicating whether result of linear regression test for funnel plot asymmetry should be added to plot.

rank

A logical indicating whether result of rank test for funnel plot asymmetry should be added to plot.

mm

A logical indicating whether result of linear regression test for funnel plot asymmetry allowing for between-study heterogeneity should be added to plot.

pos.legend

The position of the legend describing plotting symbols and colours for direct comparisons.

pos.tests

The position of results for test(s) of funnel plot asymmetry.

text.linreg

A character string used in the plot to label the linear regression test for funnel plot asymmetry.

text.rank

A character string used in the plot to label the rank test for funnel plot asymmetry.

text.mm

A character string used in the plot to label the linear regression test for funnel plot asymmetry allowing for between-study heterogeneity.

sep.trts

A character used in comparison names as separator between treatment labels.

nchar.trts

A numeric defining the minimum number of characters used to create unique treatment names (see netmeta).

backtransf

A logical indicating whether results for relative summary measures (argument sm equal to "OR", "RR", "HR", or "IRR") should be back transformed in funnel plots. If backtransf = TRUE, results for sm = "OR" are printed as odds ratios rather than log odds ratios, for example.

digits.pval

Minimal number of significant digits for p-value of test(s) for funnel plot asymmetry.

Additional graphical arguments passed as arguments to funnel.meta.

Value

A data frame with the following columns:

studlab

Study label.

treat1

Label/Number for first treatment.

treat2

Label/Number for second treatment.

comparison

Treatment comparison.

TE

Estimate of treatment effect, e.g., log odds ratio.

TE.direct

Pooled estimate from direct evidence.

TE.adj

‘Comparison-adjusted’ treatment effect (TE - TE.direct).

seTE

Standard error of treatment estimate.

pch

Plotting symbol(s).

col

Colour of plotting symbol(s).

Details

A ‘comparison-adjusted’ funnel plot (Chaimani & Salanti, 2012) is drawn in the active graphics window.

Argument order is mandatory to determine the order of treatments (Chaimani et al., 2013):

“Before using this plot, investigators should order the treatments in a meaningful way and make assumptions about how small studies differ from large ones. For example, if they anticipate that newer treatments are favored in small trials, then they could name the treatments from oldest to newest so that all comparisons refer to ‘old versus new intervention’. Other possibilities include defining the comparisons so that all refer to an active treatment versus placebo or sponsored versus non-sponsored intervention.”

The treatments can be either in increasing or decreasing order.

In the funnel plot, if yaxis is "se", the standard error of the treatment estimates is plotted on the y-axis which is likely to be the best choice (Sterne & Egger, 2001). Other possible choices for yaxis are "invvar" (inverse of the variance), "invse" (inverse of the standard error), and "size" (study size).

References

Chaimani A & Salanti G (2012): Using network meta-analysis to evaluate the existence of small-study effects in a network of interventions. Research Synthesis Methods, 3, 161--76

Chaimani A, Higgins JP, Mavridis D, Spyridonos P, Salanti G (2013): Graphical tools for network meta-analysis in STATA. PLOS ONE, 8, e76654

Sterne JAC & Egger M (2001): Funnel plots for detecting bias in meta-analysis: Guidelines on choice of axis. Journal of Clinical Epidemiology, 54, 1046--55

See Also

netmeta, funnel.meta, metabias

Examples

Run this code
# NOT RUN {
data(Senn2013)

net1 <- netmeta(TE, seTE, treat1, treat2, studlab,
                data = Senn2013, sm = "MD")

# 'Comparison-adjusted' funnel plot not created as argument 'order'
# is missing
#
funnel(net1)

# (Non-sensical) alphabetic order of treatments with placebo as
# last treatment
#
ord <- c("a", "b", "me", "mi", "pi", "r", "si", "su", "v", "pl")
funnel(net1, order = ord)

# Add results for tests of funnel plot asymmetry and use different
# plotting symbols and colours
#
funnel(net1, order = ord,
       pch = rep(c(15:18, 1), 3), col = 1:3,
       linreg = TRUE, rank = TRUE, mm = TRUE, digits.pval = 2)

# Same results for tests of funnel plot asymmetry using reversed
# order of treatments
#
funnel(net1, order = rev(ord),
       pch = rep(c(15:18, 1), 3), col = 1:3,
       linreg = TRUE, rank = TRUE, mm = TRUE, digits.pval = 2)

# Calculate tests for funnel plot asymmetry
#
f1 <- funnel(net1, order = ord,
             pch = rep(c(15:18, 1), 3), col = 1:3,
             linreg = TRUE, rank = TRUE, mm = TRUE)
#
metabias(metagen(TE.adj, seTE, data = f1))
metabias(metagen(TE.adj, seTE, data = f1), method = "rank")
metabias(metagen(TE.adj, seTE, data = f1), method = "mm")

# }

Run the code above in your browser using DataLab