netmeta (version 1.2-1)

netmetabin: Network meta-analysis of binary outcome data

Description

Provides three models for the network meta-analysis of binary data (Mantel-Haenszel method, based on the non-central hypergeometric distribution, and the inverse variance method).

Usage

netmetabin(
  event1,
  n1,
  event2,
  n2,
  treat1,
  treat2,
  studlab,
  data = NULL,
  subset = NULL,
  sm,
  method = "MH",
  cc.pooled = FALSE,
  incr = gs("incr"),
  allincr = gs("allincr"),
  addincr = gs("addincr"),
  allstudies = gs("allstudies"),
  level = gs("level"),
  level.comb = gs("level.comb"),
  comb.fixed = gs("comb.fixed"),
  comb.random = method == "Inverse" & (gs("comb.random") | !is.null(tau.preset)),
  prediction = FALSE,
  level.predict = gs("level.predict"),
  reference.group = "",
  baseline.reference = TRUE,
  all.treatments = NULL,
  seq = NULL,
  tau.preset = NULL,
  tol.multiarm = 0.001,
  tol.multiarm.se = tol.multiarm,
  details.chkmultiarm = FALSE,
  sep.trts = ":",
  nchar.trts = 666,
  backtransf = gs("backtransf"),
  title = "",
  keepdata = gs("keepdata"),
  warn = TRUE
)

Arguments

event1

Number of events (first treatment).

n1

Number of observations (first treatment).

event2

Number of events (second treatment).

n2

Number of observations (second treatment)

treat1

Label/Number for first treatment.

treat2

Label/Number for second treatment.

studlab

An optional - but important! - vector with study labels (see Details).

data

An optional data frame containing the study information.

subset

An optional vector specifying a subset of studies to be used.

sm

A character string indicating underlying summary measure, i.e., "RD", "RR", "OR", "ASD".

method

A character string indicating which method is to be used for pooling of studies. One of "Inverse", "MH", or "NCH", can be abbreviated.

cc.pooled

A logical indicating whether incr should be used as a continuity correction, when calculating the network meta-analysis estimates.

incr

A numerical value which is added to each cell count, i.e., to the numbers of events and non-events, of all treatment arms in studies with zero events or non-events in any of the treatment arms ("continuity correction").

allincr

A logical indicating whether incr should be added to each cell count of all studies if a continuity correction was used for at least one study (only considered if method = "Inverse"). If FALSE (default), incr is used as continuity correction only for studies with zero events or zero non-events in any of the treatment arms.

addincr

A logical indicating whether incr should be added to each cell count of all studies, irrespective of zero cell counts (only considered if method = "Inverse").

allstudies

A logical indicating whether studies with zero events or non-events in all treatment arms should be included in an inverse variance meta-analysis (applies only if method = "Inverse" and sm is equal to either "RR" or "OR").

level

The level used to calculate confidence intervals for individual studies.

level.comb

The level used to calculate confidence intervals for pooled estimates.

comb.fixed

A logical indicating whether a fixed effects (common effects) network meta-analysis should be conducted.

comb.random

A logical indicating whether a random effects network meta-analysis should be conducted.

prediction

A logical indicating whether a prediction interval should be printed (only considered if method = "Inverse").

level.predict

The level used to calculate prediction interval for a new study (only considered if method = "Inverse").

reference.group

Reference treatment.

baseline.reference

A logical indicating whether results should be expressed as comparisons of other treatments versus the reference treatment (default) or vice versa. This argument is only considered if reference.group has been specified.

all.treatments

A logical or "NULL". If TRUE, matrices with all treatment effects, and confidence limits will be printed.

seq

A character or numerical vector specifying the sequence of treatments in printouts.

tau.preset

An optional value for manually setting the square-root of the between-study variance \(\tau^2\) (only considered if method = "Inverse").

tol.multiarm

A numeric for the tolerance for consistency of treatment estimates in multi-arm studies which are consistent by design (only considered if method = "Inverse").

tol.multiarm.se

A numeric for the tolerance for consistency of standard errors in multi-arm studies which are consistent by design (only considered if method = "Inverse").

details.chkmultiarm

A logical indicating whether treatment estimates and / or variances of multi-arm studies with inconsistent results or negative multi-arm variances should be printed (only considered if method = "Inverse").

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 Details).

backtransf

A logical indicating whether results should be back transformed in printouts and forest plots. If backtransf = TRUE, results for sm = "OR" are presented as odds ratios rather than log odds ratios, for example.

title

Title of meta-analysis / systematic review.

keepdata

A logical indicating whether original data (set) should be kept in netmeta object.

warn

A logical indicating whether warnings should be printed (e.g., if studies are excluded from meta-analysis due to zero standard errors).

Value

An object of class netmetabin and netmeta with corresponding print, summary, forest, and netrank functions. The object is a list containing the following components:

studlab, treat1, treat2

As defined above.

n1, n2, event1, event2

As defined above.

TE

Estimate of treatment effect, i.e. difference between first and second treatment (e.g. log odds ratio).

seTE

Standard error of treatment estimate.

k

Total number of studies.

m

Total number of pairwise comparisons.

n

Total number of treatments.

d

Total number of designs (corresponding to the unique set of treatments compared within studies).

trts

Treatments included in network meta-analysis.

k.trts

Number of studies evaluating a treatment.

n.trts

Number of observations receiving a treatment.

events.trts

Number of events observed for a treatment.

studies

Study labels coerced into a factor with its levels sorted alphabetically.

narms

Number of arms for each study.

designs

Unique list of designs present in the network. A design corresponds to the set of treatments compared within a study.

TE.fixed, seTE.fixed

nxn matrix with estimated overall treatment effects and standard errors for fixed effects model.

lower.fixed, upper.fixed

nxn matrices with lower and upper confidence interval limits for fixed effects model.

zval.fixed, pval.fixed

nxn matrices with z-value and p-value for test of overall treatment effect under fixed effects model.

TE.random, seTE.random

nxn matrix with estimated overall treatment effects and standard errors for random effects model (only available if method = "Inverse").

lower.random, upper.random

nxn matrices with lower and upper confidence interval limits for random effects model (only available if method = "Inverse").

zval.random, pval.random

nxn matrices with z-value and p-value for test of overall treatment effect under random effects model (only available if method = "Inverse").

TE.direct.fixed, seTE.direct.fixed

nxn matrix with estimated treatment effects and standard errors from direct evidence under fixed effects model.

lower.direct.fixed, upper.direct.fixed

nxn matrices with lower and upper confidence interval limits from direct evidence under fixed effects model.

zval.direct.fixed, pval.direct.fixed

nxn matrices with z-value and p-value for test of overall treatment effect from direct evidence under fixed effects model.

TE.direct.random, seTE.direct.random

nxn matrix with estimated treatment effects and standard errors from direct evidence under random effects model (only available if method = "Inverse").

lower.direct.random, upper.direct.random

nxn matrices with lower and upper confidence interval limits from direct evidence under random effects model (only available if method = "Inverse").

zval.direct.random, pval.direct.random

nxn matrices with z-value and p-value for test of overall treatment effect from direct evidence under random effects model (only available if method = "Inverse").

Q

Overall heterogeneity / inconsistency statistic.

df.Q

Degrees of freedom for test of heterogeneity / inconsistency.

pval.Q

P-value for test of heterogeneity / inconsistency.

I2, lower.I2, upper.I2

I-squared, lower and upper confidence limits (only available if method = "Inverse").

tau

Square-root of between-study variance (only available if method = "Inverse").

A.matrix

Adjacency matrix (nxn).

H.matrix

Hat matrix (mxm)

n.matrix

nxn matrix with number of observations in direct comparisons.

events.matrix

nxn matrix with number of events in direct comparisons.

sm, method, level, level.comb

As defined above.

incr, allincr, addincr, allstudies, cc.pooled

As defined above.

comb.fixed, comb.random

As defined above.

prediction, level.predict

As defined above.

reference.group, baseline.reference, all.treatments

As defined above.

seq, tau.preset, tol.multiarm, tol.multiarm.se

As defined above.

details.chkmultiarm, sep.trts, nchar.trts

As defined above.

backtransf, title, warn

As defined above.

data

Data set (in contrast-based format).

data.design

List with data in arm-based format (each list element corresponds to a single design).

call

Function call.

version

Version of R package netmeta used to create object.

Details

This function implements three models for the network meta-analysis of binary data:

  • The Mantel-Haenszel network meta-analysis model, as described in Efthimiou et al. (2019) (method = "MH");

  • a network meta-analysis model using the non-central hypergeometric distribution with the Breslow approximation, as described in Stijnen et al. (2010) (method = "NCH");

  • the inverse variance method for network meta-analysis (method = "Inverse"), also provided by netmeta.

Comparisons belonging to multi-arm studies are identified by identical study labels (argument studlab). It is therefore important to use identical study labels for all comparisons belonging to the same multi-arm study.

Data entry for this function is in contrast-based format, that is, each line of the data corresponds to a single pairwise comparison between two treatments (arguments treat1, treat2, event1, n1, event2, and n2). If data are provided in arm-based format, that is, number of events and participants are given for each treatment arm separately, function pairwise can be used to transform the data to contrast-based format (see help page of function pairwise).

Note, all pairwise comparisons must be provided for a multi-arm study. Consider a multi-arm study of p treatments with known variances. For this study, the number of events and observations must be provided for each treatment, for each of p(p - 1) / 2 possible comparisons in separate lines in the data. For instance, a three-arm study contributes three pairwise comparisons, a four-arm study even six pairwise comparisons. Function pairwise automatically calculates all pairwise comparisons for multi-arm studies.

For method = "Inverse", both fixed effects and random effects models are calculated regardless of values choosen for arguments comb.fixed and comb.random. Accordingly, the network estimates for the random effects model can be extracted from component TE.random of an object of class "netmeta" even if argument comb.random = FALSE. However, all functions in R package netmeta will adequately consider the values for comb.fixed and comb.random. E.g. function print.summary.netmeta will not print results for the random effects model if comb.random = FALSE.

For the random-effects model, the direct treatment estimates are based on the common between-study variance \(\tau^2\) from the network meta-analysis.

For method = "MH" and method = "NCH", only a fixed effects model is available.

By default, treatment names are not abbreviated in printouts. However, in order to get more concise printouts, argument nchar.trts can be used to define the minimum number of characters for abbreviated treatment names (see abbreviate, argument minlength). R function treats is utilised internally to create abbreviated treatment names.

Names of treatment comparisons are created by concatenating treatment labels of pairwise comparisons using sep.trts as separator (see paste). These comparison names are used in the covariance matrices Cov.fixed and Cov.random and in some R functions, e.g, decomp.design. By default, a colon is used as the separator. If any treatment label contains a colon the following characters are used as separator (in consecutive order): "-", "_", "/", "+", ".", "|", and "*". If all of these characters are used in treatment labels, a corresponding error message is printed asking the user to specify a different separator.

References

Efthimiou O, R<U+00FC>cker G, Schwarzer G, Higgins J, Egger M, Salanti G (2019): A Mantel-Haenszel model for network meta-analysis of rare events. Statistics in Medicine, 1--21, https://doi.org/10.1002/sim.8158

Senn S, Gavini F, Magrez D, Scheen A (2013): Issues in performing a network meta-analysis. Statistical Methods in Medical Research, 22, 169--89

Stijnen T, Hamza TH, Ozdemir P (2010): Random effects meta-analysis of event outcome in the framework of the generalized linear mixed model with applications in sparse data. Statistics in Medicine, 29, 3046--67

See Also

pairwise, netmeta

Examples

Run this code
# NOT RUN {
data(Dong2013)

# Only consider first ten studies (to reduce runtime of example)
#
first10 <- subset(Dong2013, id <= 10)

# Transform data from long arm-based format to contrast-based
# format. Argument 'sm' has to be used for odds ratio as summary
# measure; by default the risk ratio is used in the metabin
# function called internally.
#
p1 <- pairwise(treatment, death, randomized, studlab = id,
               data = first10, sm = "OR")

# Conduct Mantel-Haenszel network meta-analysis (without continuity
# correction)
#
nb1 <- netmetabin(p1, ref = "plac")
nb1

# Obtain the league table
#
netleague(nb1)

# }
# NOT RUN {
# Conduct Mantel-Haenszel network meta-analysis for the whole
# dataset
#
p2 <- pairwise(treatment, death, randomized, studlab = id,
               data = Dong2013, sm = "OR")
netmetabin(p2, ref = "plac")
  
# Conduct network meta-analysis using the non-central
# hypergeometric model (without continuity correction)
#
netmetabin(p2, ref = "plac", method = "NCH")

# Conduct Mantel-Haenszel network meta-analysis (with continuity
# correction of 0.5; include all studies)
#
netmetabin(p2, ref = "plac", cc.pooled = TRUE)

data(Gurusamy2011)

p3 <- pairwise(treatment, death, n, studlab = study,
               data = Gurusamy2011, sm = "OR")

# Conduct Mantel-Haenszel network meta-analysis (without continuity
# correction)
#
netmetabin(p3, ref = "cont")
# }
# NOT RUN {
# }

Run the code above in your browser using DataCamp Workspace