Learn R Programming

netmeta (version 0.9-8)

discomb: Additive network meta-analysis for combinations of treatments (disconnected networks)

Description

Some treatments in a network meta-analysis may be combinations of other treatments or have common components. The influence of individual components can be evaluated in an additive network meta-analysis model assuming that the effect of treatment combinations is the sum of the effects of its components. This function implements this additive model in a frequentist way and is particularly intended for disconnected networks.

Usage

discomb(TE, seTE,
        treat1, treat2,
        studlab, data = NULL, subset = NULL,
        ##
        inactive = NULL,
        sep.components = "+", 
        C.matrix,
        ##
        sm,
        level.comb = gs("level.comb"),
        comb.fixed = gs("comb.fixed"),
        comb.random = gs("comb.random") | !is.null(tau.preset),
        ##
        seq = NULL,
        ##
        tau.preset = NULL,
        ##
        tol.multiarm = 0.0005,
        details.chkmultiarm = FALSE,
        ##
        sep.trts = ":",
        nchar.trts = 666,
        ##
        backtransf = gs("backtransf"),
        ##
        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 netmeta).

data

An optional data frame containing the study information.

subset

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

inactive

A character string defining the inactive treatment (see Details).

sep.components

A single character to define separator between treatment components.

C.matrix

C matrix (see Details).

sm

A character string indicating underlying summary measure, e.g., "RD", "RR", "OR", "ASD", "HR", "MD", "SMD", or "ROM".

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.

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

tol.multiarm

A numeric for the tolerance for consistency of treatment estimates and corresponding variances in multi-arm studies which are consistent by design.

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.

sep.trts

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

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.

nchar.trts

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

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

A list containing the following components:

inactive, sep.components, C.matrix, sm

As defined above.

level.comb, comb.fixed, comb.random, seq

As defined above.

tau.preset, sep.trts, nchar.trts, backtransf

As defined above.

k

Total number of studies.

m

Total number of pairwise comparisons.

n

Total number of treatments.

c

Total number of components.

comparisons.fixed, comparisons.random

Lists with components studlab, treat1, treat2, TE, seTE, lower, upper, z, p level, df (fixed and random effects model).

components.fixed, components.random

Lists with components TE, seTE, lower, upper, z, p level, df (fixed and random effects model).

combinations.fixed, combinations.random

Lists with components TE, seTE, lower, upper, z, p level, df (fixed and random effects model).

Q.additive

Overall heterogeneity / inconsistency statistic (additive model).

df.Q.additive

Degrees of freedom for test of heterogeneity / inconsistency (additive model).

pval.Q.additive

P-value for test of heterogeneity / inconsistency (additive model).

Q.standard

Overall heterogeneity / inconsistency statistic (standard model).

df.Q.standard

Degrees of freedom for test of heterogeneity / inconsistency (standard model).

pval.Q.standard

P-value for test of heterogeneity / inconsistency (standard model).

Q.diff

Test statistic for difference in goodness of fit between standard and additive model.

df.Q.diff

Degrees of freedom for difference in goodness of fit between standard and additive model.

pval.Q.diff

P-value for difference in goodness of fit between standard and additive model.

B.matrix

Edge-vertex incidence matrix (mxn).

X

Full design matrix (mxn).

trts

Treatments included in network meta-analysis.

title

Title of meta-analysis / systematic review.

call

Function call.

version

Version of R package netmeta used to create object.

Details

Treatments in network meta-analysis (NMA) can be complex interventions. Some treatments may be combinations of others or have common components. The standard analysis provided by netmeta is a NMA where all existing (single or combined) treatments are considered as different nodes in the network. Exploiting the fact that some treatments are combinations of common components, an additive NMA model can be used to evaluate the influence of individual components. This model assumes that the effect of a treatment combination is the sum of the effects of its components which implies that common components cancel out in comparisons.

This R function can be used for disconnected networks. Use netmeta and netcomb for connected networks.

The additive network meta-analysis model has been implemented using Bayesian methods (Mills et al., 2012; Welton et al., 2013). This function implements the additive model in a frequentist way (R<U+00FC>cker & Schwarzer, 2017).

The underlying multivariate model is given by

$$\bold{\delta} = \bold{B} \bold{\theta}, \bold{\theta} = \bold{C} \bold{\beta}$$

with

  • [\(\bold{\delta}\)] vector of true treatment effects (differences) from individual studies,

  • [\(\bold{B}\)] is a design matrix describing the structure of the network,

  • [\(\bold{\theta}\)] parameter vector that represents the existing combined treatments,

  • [\(\bold{C}\)] matrix describing how the treatments are composed,

  • [\(\bold{\beta}\)] is a parameter vector representing the treatment components.

All parameters are estimated using weighted least squares regression.

Argument inactive can be used to specify a single component that does not have any therapeutic value. Accordingly, it is assumed that the treatment effect of the combination of this component with an additional treatment component is equal to the treatment effect of the additional component alone.

Argument sep.components can be used to specify the separator between individual components. By default, the matrix C is calculated internally from treatment names. However, it is possible to specify a different matrix using argument C.matrix.

References

K<U+00F6>nig J, Krahn U, Binder H (2013). Visualizing the flow of evidence in network meta-analysis and characterizing mixed treatment comparisons. Statistics in Medicine, 32(30), 5414--29.

Mills EJ, Thorlund K, Ioannidis JP (2012). Calculating additive treatment effects from multiple randomized trials provides useful estimates of combination therapies. Journal of Clinical Epidemiology, 65(12), 1282--8. Doi: 10.1016/j.jclinepi.2012.07.012.

R<U+00FC>cker G, Schwarzer G (2017). Network meta-analysis of combinations of treatments. Manuscript.

Welton NJ, Caldwell DM, Adamopoulos E, Vedhara K (2009). Mixed treatment comparison meta-analysis of complex interventions: psychological interventions in coronary heart disease. American Journal of Epidemiology, 169(9): 1158--65. Doi: 10.1093/aje/kwp014.

See Also

netcomb, print.netcomb, netmeta, netconnection

Examples

Run this code
# NOT RUN {
# Artificial dataset
#
t1 <- c("A + B", "A + C", "A"    , "A"    , "D", "D", "E")
t2 <- c("C"    , "B"    , "B + C", "A + D", "E", "F", "F")
#
mean    <- c(4.1, 2.05, 0, 0, 0.1, 0.1, 0.05)
se.mean <- rep(0.1, 7)
##
study <- paste("study", c(1:4, 5, 5, 5))
#
dat <- data.frame(mean, se.mean, t1, t2, study,
                  stringsAsFactors = FALSE)
#
trts <- c("A", "A + B", "A + C", "A + D",
          "B", "B + C", "C", "D", "E", "F")
#
comps <- LETTERS[1:6]


# Use netconnection() to display network information
#
netconnection(t1, t2, study)


dc1 <- discomb(mean, se.mean, t1, t2, study, seq = trts)
dc1


# Define C matrix
#
C <- rbind(c(1, 0, 0, 0, 0, 0),  # A
           c(1, 1, 0, 0, 0, 0),  # A + B
           c(1, 0, 1, 0, 0, 0),  # A + C
           c(1, 0, 0, 1, 0, 0),  # A + D
           c(0, 1, 0, 0, 0, 0),  # B
           c(0, 1, 1, 0, 0, 0),  # B + C
           c(0, 0, 1, 0, 0, 0),  # C
           c(0, 0, 0, 1, 0, 0),  # D
           c(0, 0, 0, 0, 1, 0),  # E
           c(0, 0, 0, 0, 0, 1))  # F
#                  
colnames(C) <- comps
rownames(C) <- trts
#
dc2 <- discomb(mean, se.mean, t1, t2, study, seq = trts,
               C.matrix = C)
#
# Compare C matrices
#
all.equal(dc1$C.matrix, dc2$C.matrix)
# }

Run the code above in your browser using DataLab