Learn R Programming

netmeta (version 3.7-0)

netrank: Frequentist method to rank treatments in network

Description

Ranking treatments in frequentist network meta-analysis with and without resampling methods.

Usage

netrank(
  x,
  small.values = x$small.values,
  method,
  nsim,
  common = x$common,
  random = x$random,
  warn.deprecated = gs("warn.deprecated"),
  ...
)

# S3 method for netrank print( x, common = x$common, random = x$random, sort = TRUE, digits = gs("digits.prop"), digits.mean = 2, warn.deprecated = gs("warn.deprecated"), ... )

Value

An object of class netrank with corresponding print

function. The object is a list containing the following components:

ranking.common

A named numeric vector with ranking values for the common effects model.

Pmatrix.common

Numeric matrix based on pairwise one-sided p-values for the common effects model.

ranking.random

A named numeric vector with ranking values for the random effects model.

Pmatrix.random

Numeric matrix based on pairwise one-sided p-values of the random effects model.

small.values, method, x

As defined above.

version

Version of R package netmeta used to create object.

Arguments

x

An object of class netmeta or rankogram.

small.values

A character string specifying whether small treatment effects indicate a beneficial ("desirable") or harmful ("undesirable") effect, can be abbreviated.

method

A character string specifying the ranking metric (see Details).

nsim

Number of repetitions for ranking metrics based on resampling.

common

A logical indicating whether to print the rankings for the common effects model.

random

A logical indicating whether to print the rankings for the random effects model.

warn.deprecated

A logical indicating whether warnings should be printed if deprecated arguments are used.

...

Additional arguments passed on to print.data.frame function (used internally).

sort

A logical indicating whether printout should be sorted by decreasing rankings.

digits

Minimal number of significant digits for ranking probabilities, P-scores, and SUCRAs, see print.default.

digits.mean

Minimal number of significant digits for mean or median ranks, see print.default.

Author

Gerta Rücker [email protected], Guido Schwarzer [email protected], Theodoros Papakonstantinou [email protected]

Details

Treatments considered in a network meta-analysis are ranked by one of the following ranking metrics:

ArgumentRanking metric
method = "P-score"P-score (Rücker and Schwarzer 2015)
method = "SUCRA"Surface Under the Cumulative RAnking curve (SUCRA)
(Salanti et al. 2011)
method = "best"Probability of being best (Pr(best))
method = "mean"Mean rank
method = "median"Median rank

P-scores are based solely on the point estimates and standard errors of the network estimates. They measure the extent of certainty that a treatment is better than another treatment, averaged over all competing treatments (Rücker and Schwarzer 2015).

Resampling methods are used for all other ranking metrics.

The Surface Under the Cumulative RAnking curve (SUCRA) is the rank of treatment i within the range of treatments, measured on a scale from 0 (worst) to 1 (best) (Salanti et al. 2011). A resampling method is used to calculate SUCRAs for frequentist network meta-analysis. The number of repetitions is determine by argument nsim.

The interpretation of P-scores and SUCRAs is comparable.

The P-score of treatment i is defined as the mean of all 1 - P[j] where P[j] denotes the one-sided P-value of accepting the alternative hypothesis that treatment i is better than one of the competing treatments j. Thus, if treatment i is better than many other treatments, many of these P-values will be small and the P-score will be large. Vice versa, if treatment i is worse than most other treatments, the P-score is small.

The P-score of treatment i can be interpreted as the mean extent of certainty that treatment i is better than another treatment.

For P-scores, SUCRAs, and probabilities of being best, larger values are favorable. For mean and median ranks, smaller values are favorable.

References

Rücker G, Schwarzer G (2017): Resolve conflicting rankings of outcomes in network meta-analysis: Partial ordering of treatments. Research Synthesis Methods, 8, 526--36

Salanti G, Ades AE, Ioannidis JP (2011): Graphical methods and numerical summaries for presenting results from multiple-treatment meta-analysis: an overview and tutorial. Journal of Clinical Epidemiology, 64, 163--71

See Also

netmeta, rankogram, plot.rankogram

Examples

Run this code
# \donttest{
# Define order of treatments in depression dataset Linde2015
#
trts <- c("TCA", "SSRI", "SNRI", "NRI",
  "Low-dose SARI", "NaSSa", "rMAO-A", "Hypericum", "Placebo")

# Outcome labels
#
outcomes <- c("Early response", "Early remission")

# (1) Early response
#
pw1 <- pairwise(treat = list(treatment1, treatment2, treatment3),
  event = list(resp1, resp2, resp3), n = list(n1, n2, n3),
  studlab = id, data = Linde2015, sm = "OR")
#
nma1 <- netmeta(pw1, common = FALSE, seq = trts, ref = "Placebo",
  small.values = "undesirable")
netrank(nma1)

# (2) Early remission
#
pw2 <- pairwise(treat = list(treatment1, treatment2, treatment3),
  event = list(remi1, remi2, remi3), n = list(n1, n2, n3),
  studlab = id, data = Linde2015, sm = "OR")
#
nma2 <- netmeta(pw2, common = FALSE, seq = trts, ref = "Placebo",
  small.values = "undesirable")
netrank(nma2)

# Image plot of treatment rankings (two outcomes)
#
plot(netrank(nma1), netrank(nma2), name = outcomes, digits = 2)


# Outcome labels
#
outcomes <- c("Early response", "Early remission",
  "Lost to follow-up", "Lost to follow-up due to AEs",
  "Adverse events (AEs)")

# (3) Loss to follow-up
#
pw3 <- pairwise(treat = list(treatment1, treatment2, treatment3),
  event = list(loss1, loss2, loss3), n = list(n1, n2, n3),
  studlab = id, data = Linde2015, sm = "OR")
#
nma3 <- netmeta(pw3, common = FALSE, seq = trts, ref = "Placebo",
  small.values = "desirable")

# (4) Loss to follow-up due to adverse events
#
pw4 <- pairwise(treat = list(treatment1, treatment2, treatment3),
  event = list(loss.ae1, loss.ae2, loss.ae3), n = list(n1, n2, n3),
  studlab = id, data = subset(Linde2015, id != 55), sm = "OR")
#
nma4 <- netmeta(pw4, common = FALSE, seq = trts, ref = "Placebo",
  small.values = "desirable")

# (5) Adverse events
#
pw5 <- pairwise(treat = list(treatment1, treatment2, treatment3),
  event = list(ae1, ae2, ae3), n = list(n1, n2, n3),
  studlab = id, data = Linde2015, sm = "OR")
#
nma5 <- netmeta(pw5, common = FALSE, seq = trts, ref = "Placebo",
  small.values = "desirable")

# Image plot of treatment rankings (five outcomes)
#
plot(netrank(nma1), netrank(nma2), netrank(nma3),
  netrank(nma4), netrank(nma5),
  name = outcomes, digits = 2)
# }

Run the code above in your browser using DataLab