# netposet

##### Partial order of treatments in network meta-analysis

Partial order of treatments in network meta-analysis. The set of
treatments in a network is called a partially ordered set (in short,
a *poset*), if different outcomes provide different treatment
ranking lists.

- Keywords
- Partial order of rankings, poset

##### Usage

```
netposet(..., outcomes, treatments, small.values,
comb.fixed, comb.random)
```# S3 method for netposet
print(x,
pooled=ifelse(x$comb.random, "random", "fixed"),
...)

##### Arguments

- …
See details.

- outcomes
A character vector with outcome names.

- treatments
A character vector with treatment names.

- small.values
See details.

- comb.fixed
A logical indicating whether to show results for fixed effect model.

- comb.random
A logical indicating whether to show results for random effects model.

- x
An object of class

`netposet`

.- pooled
A character string indicating whether Hasse diagram should be drawn for fixed effect (

`"fixed"`

) or random effects model (`"random"`

). Can be abbreviated.

##### Details

In network meta-analysis, frequently different outcomes are
considered which may each provide a different ordering of
treatments. The concept of a partially ordered set (in short, a
*poset*, Carlsen and Bruggemann, 2014) of treatments can be
used to gain further insights in situations with apparently
conflicting orderings.

In function `netposet`

, argument `…`

can be any of the
following:

arbitrary number of

`netrank`

objects providing P-scores;arbitrary number of

`netmeta`

objects;single ranking matrix with each column providing P-scores (R<U+00FC>cker and Schwarzer 2015) or SUCRA values (Salanti et al. 2011) for an outcome and rows corresponding to treatments.

Note, albeit in general a ranking matrix is not constrained to have
values between 0 and 1, `netposet`

stops with an error in this
case as this function expects a matrix with P-scores or SUCRA
values.

Argument `outcomes`

can be used to label outcomes. If argument
`outcomes`

is missing,

column names of the ranking matrix are used as outcome labels (if first argument is a ranking matrix and column names are available);

capital letters 'A', 'B', … are used as outcome labels and a corresponding warning is printed.

Argument `treatments`

can be used to provide treatment labels
if the first argument is a ranking matrix. If argument
`treatment`

is missing,

row names of the ranking matrix are used as treatment labels (if available);

letters 'a', 'b', … are used as treatment labels and a corresponding warning is printed.

If argument `…`

consists of `netmeta`

objects,
`netrank`

is called internally to calculate P-scores. In this
case, argument `small.values`

can be used to specify for each
outcome whether small values are good or bad; see
`netrank`

. This argument is ignored for a ranking matrix
and `netrank`

objects.

Arguments `comb.fixed`

and `comb.random`

can be used to
define whether results should be printed and plotted for fixed
effect and / or random effects model. If netmeta and netrank objects
are provided in argument `…`

, values for `comb.fixed`

and `comb.random`

within these objects are considered; if these
values are not unique, argument `comb.fixed`

and / or
`comb.random`

are set to `TRUE`

.

In function `print.netposet`

, argument `…`

is passed on
to the printing function.

##### Value

An object of class `netposet`

with corresponding `print`

,
`plot`

, and `hasse`

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

Ranking matrix with rows corresponding to treatments and columns corresponding to outcomes (fixed effect model).

Hasse matrix skipping unnecessary paths (fixed effect model).

"Full" Hasse matrix (fixed effect model).

Matrix with information about partial ordering (fixed effect model).

Ranking matrix with rows corresponding to treatments and columns corresponding to outcomes (random effects model).

Hasse matrix skipping unnecessary paths (random effects model).

"Full" Hasse matrix (random effects model).

Matrix with information about partial ordering (random effects model).

As.defined above.

Function call.

Version of R package netmeta used to create object.

##### References

Carlsen L, Bruggemann R (2014),
Partial order methodology: a valuable tool in chemometrics.
*Journal of Chemometrics*,
**28**, 226--34, DOI:10.1002/cem.2569 .

R<U+00FC>cker G & Schwarzer G (2015),
Ranking treatments in frequentist network meta-analysis works
without resampling methods.
*BMC Medical Research Methodology*,
**15**, 58, DOI:10.1186/s12874-015-0060-8 .

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**(2), 163--171.

##### See Also

##### Examples

```
# NOT RUN {
# Use depression dataset
#
data(Linde2015)
#
# Define order of treatments
#
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
#
p1 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(resp1, resp2, resp3),
n = list(n1, n2, n3),
studlab = id, data = Linde2015, sm = "OR")
#
net1 <- netmeta(p1,
comb.fixed = FALSE, comb.random = TRUE,
seq = trts, ref = "Placebo")
#
# (2) Early remission
#
p2 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(remi1, remi2, remi3),
n = list(n1, n2, n3),
studlab = id, data = Linde2015, sm = "OR")
#
net2 <- netmeta(p2,
comb.fixed = FALSE, comb.random = TRUE,
seq = trts, ref = "Placebo")
#
# Partial order of treatment rankings (all five outcomes)
#
po <- netposet(netrank(net1, small.values = "bad"),
netrank(net2, small.values = "bad"),
outcomes = outcomes)
#
# Hasse diagram
#
hasse(po)
# }
# NOT RUN {
#
# 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
#
p3 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(loss1, loss2, loss3),
n = list(n1, n2, n3),
studlab = id, data = Linde2015, sm = "OR")
#
net3 <- netmeta(p3,
comb.fixed = FALSE, comb.random = TRUE,
seq = trts, ref = "Placebo")
#
# (4) Loss to follow-up due to adverse events
#
p4 <- 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")
#
net4 <- netmeta(p4,
comb.fixed = FALSE, comb.random = TRUE,
seq = trts, ref = "Placebo")
#
# (5) Adverse events
#
p5 <- pairwise(treat = list(treatment1, treatment2, treatment3),
event = list(ae1, ae2, ae3),
n = list(n1, n2, n3),
studlab = id, data = Linde2015, sm = "OR")
#
net5 <- netmeta(p5,
comb.fixed = FALSE, comb.random = TRUE,
seq = trts, ref = "Placebo")
#
# Partial order of treatment rankings (all five outcomes)
#
po.ranks <- netposet(netrank(net1, small.values = "bad"),
netrank(net2, small.values = "bad"),
netrank(net3, small.values = "good"),
netrank(net4, small.values = "good"),
netrank(net5, small.values = "good"),
outcomes = outcomes)
#
# Same result
#
po.nets <- netposet(net1, net2, net3, net4, net5,
small.values = c("bad", "bad", "good", "good", "good"),
outcomes = outcomes)
#
all.equal(po.ranks, po.nets)
#
# Print matrix with P-scores (random effects model)
#
po.nets$P.random
#
# Hasse diagram for all outcomes (random effects model)
#
hasse(po.ranks)
#
# Hasse diagram for outcomes early response and early remission
#
po12 <- netposet(netrank(net1, small.values = "bad"),
netrank(net2, small.values = "bad"),
outcomes = outcomes[1:2])
hasse(po12)
#
# Scatter plot
#
oldpar <- par(pty = "s")
plot(po12)
par(oldpar)
# }
# NOT RUN {
# Example using ranking matrix with P-scores
#
# Ribassin-Majed L, Marguet S, Lee A.W., et al. (2017),
# What is the best treatment of locally advanced nasopharyngeal
# carcinoma? An individual patient data network meta-analysis.
# Journal of Clinical Oncology.
# 35, 498-505, DOI:10.1200/JCO.2016.67.4119
#
outcomes <- c("OS", "PFS", "LC", "DC")
treatments <- c("RT", "IC-RT", "IC-CRT", "CRT",
"CRT-AC", "RT-AC", "IC-RT-AC")
#
# P-scores (from Table 1)
#
pscore.os <- c(15, 33, 63, 70, 96, 28, 45) / 100
pscore.pfs <- c( 4, 46, 79, 52, 94, 36, 39) / 100
pscore.lc <- c( 9, 27, 47, 37, 82, 58, 90) / 100
pscore.dc <- c(16, 76, 95, 48, 72, 32, 10) / 100
#
pscore.matrix <- data.frame(pscore.os, pscore.pfs, pscore.lc, pscore.dc)
rownames(pscore.matrix) <- treatments
colnames(pscore.matrix) <- outcomes
pscore.matrix
#
po <- netposet(pscore.matrix)
po12 <- netposet(pscore.matrix[, 1:2])
po
po12
#
hasse(po)
hasse(po12)
#
oldpar <- par(pty = "s")
plot(po12)
par(oldpar)
# }
```

*Documentation reproduced from package netmeta, version 0.9-5, License: GPL (>= 2)*