Am 27.09.19 um 17:26 schrieb Yan LUO:
[...]
I am considering of constructing a "2-dimensional figure" to show the
results of a network meta-analysis, which means using the x-axis to the
indicate efficacy ORs for a group of drugs and y-axis to indicate safety
ORs for the same group of drugs. I selected drug A as conference for both
efficacy and safety networks. In order to draw the scatter plot, I need to
extract information from 2 network meta-analyses. The output of
summary(netmeta) function (if set ref=drug A) displays all the ORs
compared to drug A (which I need), however this result is not included in
the returned list. If it were in the returned list then it would be not
hard to extract, but since it cannot be found there, how can I extract
these ORs values from the output? Besides, I am wondering why the displayed
results are different from the returned list?
Dear Yan,
You do not directly find the odds ratios in an R object created with
netmeta() as the log odds ratio is stored. Furthermore, instead of only
containing comparisons with the reference treatment, all network estimates
are stored in the list elements 'TE.fixed' and 'TE.random'.
These matrices contain the network estimates comparing the treatment in
the row with the treatment in the column. For a netmeta object net1, for
example, you can extract the log odds ratio of treatment comparisons with
the reference treatment using the following commands:
net1$TE.fixed[, net1$reference.group]
net1$TE.random[, net1$reference.group]
Similar matrices are stored in a netmeta object containing the standard
errors, lower and upper confidence limits as well as z- and p-values (see
help page of netmeta).
Concerning a scatter plot of an efficacy and safety outcome, I wrote some
R code (see attached file) which does the job. This will probably be the
basis for a new plotting function in R package *netmeta* to easily create
such scatter plots.
By the way, I have another question about the netgraph function. It seems
not to be a defaulted selection of drawing a netgraph with the size of
nodes proportional to the randomized number of patients (sample size), but
can I manage to do it by some ways?
The number of randomized patients per treatment is stored in list element
'n.trts' which can be used to determine the node size in a network graph.
E.g.,
example(smokingcessation)
netgraph(net1, plastic = FALSE, points = TRUE, adj = 0.5,
cex.points = 15 * sqrt(n.trts / max(n.trts)))
Best wishes, Guido
P.S. Some additional remarks:
- R function netleague() can be used to create a league table for an
efficacy and safety outcome. E.g., netleague(net.efficacy, net.safety)
- R functions netbind() and forest.netbind() can be used to combine / bind
results of several networks and to generate a corresponding forest plot
- R functions netposet() and plot.netposet() can be used to generate a
scatter plot of P-scores for two outcomes (to partially order / rank
treatments based on two outcomes)
--
Dr. Guido Schwarzer
Institute of Medical Biometry and Statistics,
Faculty of Medicine and Medical Center - University of Freiburg
Postal address: Stefan-Meier-Str. 26, D-79104 Freiburg
Phone: +49/761/203-6668
Mail: sc at imbi.uni-freiburg.de
Homepage: http://www.imbi.uni-freiburg.de
ORCID iD: https://orcid.org/0000-0001-6214-9087
R-book: https://www.springer.com/gp/book/9783319214153