Learn R Programming

netmeta (version 0.9-0)

netmeta: Network meta-analysis using graph-theoretical method

Description

Network meta-analysis is a generalisation of pairwise meta-analysis that compares all pairs of treatments within a number of treatments for the same condition. The graph-theoretical method for analysis of network meta-analyses uses graph-theoretical methods that were originally developed in electrical network theory. It has been found to be equivalent to the frequentist approach to network meta-analysis (Rücker, 2012).

Usage

netmeta(TE, seTE, treat1, treat2, studlab, data=NULL, subset=NULL, sm, level=0.95, level.comb=0.95, comb.fixed=TRUE, comb.random=FALSE, reference.group="", all.treatments=NULL, seq=NULL, tau.preset=NULL, title="", warn=TRUE)

Arguments

TE
Estimate of treatment effect, i.e. difference between first and second treatment (e.g. log odds ratio, mean difference, or log hazard ratio).
seTE
Standard error of treatment estimate.
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, e.g., "RD", "RR", "OR", "AS", "MD", "SMD", or "HR".
level
The level used to calculate confidence intervals for individual comparisons.
level.comb
The level used to calculate confidence intervals for pooled estimates.
comb.fixed
A logical indicating whether a fixed effect meta-analysis should be conducted.
comb.random
A logical indicating whether a random effects meta-analysis should be conducted.
reference.group
Reference group.
all.treatments
A logical or value "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 the square-root of the between-study variance $\tau^2$.
title
Title of meta-analysis / systematic review.
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 netmeta with corresponding print, summary, forest, and netrank function. The object is a list containing the following components:
TE, seTE, studlab, treat1, treat2, sm, level, level.comb
As defined above.
comb.fixed, comb.random, seq, tau.preset, title, warn
As defined above.
seTE.adj
Standard error of treatment estimate, adjusted for multi-arm studies.
reference.group
The name of the reference group, if specified, otherwise c("").
all.treatments
A logical or value "NULL". If TRUE, matrices with all treatment effects, and confidence limits will be printed.
studies
Study labels coerced into a factor with its levels sorted alphabetically.
narms
Number of arms for each study.
TE.nma.fixed, TE.nma.random
A vector of length m of consistent treatment effects estimated by network meta-analysis (nma) (fixed effect / random effects model).
seTE.nma.fixed, seTE.nma.random
A vector of length m of effective standard errors estimated by network meta-analysis (fixed effect / random effects model).
lower.nma.fixed, lower.nma.random
A vector of length m of lower confidence interval limits for consistent treatment effects estimated by network meta-analysis (fixed effect / random effects model).
upper.nma.fixed, upper.nma.random
A vector of length m of upper confidence interval limits for the consistent treatment effects estimated by network meta-analysis (fixed effect /random effects model).
leverage.fixed
A vector of length m of leverages, interpretable as factors by which variances are reduced using information from the whole network.
w.fixed, w.random
A vector of length m of weights of individual studies (fixed effect / random effects model).
TE.fixed, TE.random
nxn matrix with estimated overall treatment effects (fixed effect / random effects model).
seTE.fixed, seTE.random
nxn matrix with standard errors (fixed effect / random effects model).
lower.fixed, upper.fixed, lower.random, upper.random
nxn matrices with lower and upper confidence interval limits (fixed effect / random effects model).
zval.fixed, pval.fixed, zval.random, pval.random
nxn matrices with z-value and p-value for test of overall treatment effect (fixed effect / random effects model).
Q.fixed
A vector of length m of contributions to total heterogeneity / inconsistency statistic.
k
Total number of studies.
m
Total number of pairwise comparisons.
n
Total number of treatments.
Q
Overall heterogeneity / inconsistency statistic.
df
Degrees of freedom for test of heterogeneity / inconsistency.
pval.Q
P-value for test of heterogeneity / inconsistency.
I2
I-squared.
tau
Square-root of between-study variance.
Q.heterogeneity
Overall heterogeneity statistic.
Q.inconsistency
Overall inconsistency statistic.
A.matrix
Adjacency matrix (nxn).
L.matrix
Laplacian matrix (nxn).
Lplus.matrix
Moore-Penrose pseudoinverse of the Laplacian matrix (nxn).
Q.matrix
Matrix of heterogeneity statistics for pairwise meta-analyses, where direct comparisons exist (nxn).
G.matrix
Matrix with variances and covariances of comparisons (mxm). G is defined as BL+B^t.
H.matrix
Hat matrix (mxm), defined as H=GW=BL+B^tW.
Cov.fixed
Variance-covariance matrix (fixed effect model)
Cov.random
Variance-covariance matrix (random effects model)
Q.decomp
Data frame with columns 'treat1', 'treat2', 'Q', 'df' and 'pval.Q', providing heterogeneity statistics for each pairwise meta-analysis of direct comparisons.
call
Function call.
version
Version of R package netmeta used to create object.

Details

Network meta-analysis using R package netmeta is described in detail in Schwarzer et al. (2015), Chapter 8.

Let n be the number of different treatments in a network and let m be the number of existing comparisons (edges) between the treatments. If there are only two-arm studies, m is the number of studies. Let TE and seTE be the vectors of observed effects and their standard errors. Let W be the mxm diagonal matrix that contains the inverse variance 1/seTE^2. The given comparisons define the network structure. Therefrom an mxn design matrix B is formed; for more precise information, see Rücker (2012). Moreover, the nxn Laplacian matrix L and its Moore-Penrose pseudoinverse L+ are calculated (both matrices play an important role in graph theory and electrical network theory). Using these matrices, the variances based on both direct and indirect comparisons can be estimated. Moreover, the hat matrix H can be estimated by H = BL+B^tW = B(B^t W B)^+B^tW and finally consistent treatment effects can be estimated by applying the hat matrix to the observed (potentially inconsistent) effects. H is a projection matrix which maps the observed effects onto the consistent (n-1)-dimensional subspace. This is the Aitken estimator (Senn et al., 2013). As in pairwise meta-analysis, the Q statistic measures the deviation from consistency. Q can be separated into parts for each pairwise meta-analysis and a part for remaining inconsistency between comparisons.

Often multi-arm studies are included in a network meta-analysis. In multi-arm studies, the treatment effects on different comparisons are not independent, but correlated. This is accounted for by reweighting all comparisons of each multi-arm study. The method is described in Rücker (2012) and Rücker and Schwarzer (2014).

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, e.g., study label "Willms1999" for the three-arm study in the data example (Senn et al., 2013). The function netmeta then automatically accounts for within-study correlation by reweighting all comparisons of each multi-arm study.

Data entry for this function is in contrast-based format, that is, data are given as contrasts (differences) between two treatments (argument TE) with standard error (argument seTE). In principle, meta-analysis functions from R package meta, e.g. metabin for binary outcomes or metacont for continuous outcomes, can be used to calculate treatment effects separately for each treatment comparison which is a rather tedious enterprise. If data are provided in arm-based format, that is, data are given for each treatment arm separately (e.g. number of events and participants for binary outcomes), a much more convenient way to transform data into contrast-based form is available. Function pairwise can automatically transform data with binary outcomes (using the metabin function from R package meta), continuous outcomes (metacont function), incidence rates (metainc function), and generic outcomes (metagen function). Additional arguments of these functions can be provided, e.g., to calculate Hedges' g or Cohen's d for continuous outcomes (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, treatment effects and standard errors must be provided for each of p(p - 1)/2 possible comparisons. 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. A simple random effects model assuming that a constant heterogeneity variance is added to each comparison of the network can be defined via a generalised methods of moments estimate of the between-studies variance tau^2 (Jackson et al., 2012). This is added to the observed sampling variance seTE^2 of each comparison in the network (before appropriate adjustment for multi-arm studies). Then, as in standard pairwise meta-analysis, the procedure is repeated with the resulting enlarged standard errors.

References

Jackson D, White IR and Riley RD (2012), Quantifying the impact of between-study heterogeneity in multivariate meta-analyses. Statistics in Medicine, 31(29), 3805--3820.

Rücker G (2012), Network meta-analysis, electrical networks and graph theory. Research Synthesis Methods, 3, 312--324.

Rücker G and Schwarzer G (2014), Reduce dimension or reduce weights? Comparing two approaches to multi-arm studies in network meta-analysis. Statistics in Medicine, 33, 4353--4369.

Schwarzer G, Carpenter JR and Rücker G (2015), Meta-Analysis with R (Use-R!). Springer International Publishing, Switzerland

Senn S, Gavini F, Magrez D, and Scheen A (2013), Issues in performing a network meta-analysis. Statistical Methods in Medical Research, 22(2), 169--189. First published online 2012 Jan 3.

See Also

pairwise, forest.netmeta, netrank, metagen

Examples

Run this code
data(Senn2013)

#
# Fixed effect model (default)
#
net1 <- netmeta(TE, seTE, treat1, treat2, studlab,
                data=Senn2013, sm="MD")
net1
net1$Q.decomp

#
# Comparison with reference group
#
netmeta(TE, seTE, treat1, treat2, studlab,
        data=Senn2013, sm="MD", reference="plac")

#
# Random effects model
#
net2 <- netmeta(TE, seTE, treat1, treat2, studlab,
                data=Senn2013, sm="MD", comb.random=TRUE)
net2

#
# Change printing order of treatments (placebo first)
#
trts <- c("plac", "acar", "benf", "metf", "migl", "piog",
          "rosi", "sita", "sulf", "vild")
net3 <- netmeta(TE, seTE, treat1, treat2, studlab,
                data=Senn2013, sm="MD",
                seq=trts)
print(summary(net3), digits=2)

Run the code above in your browser using DataLab