[R-meta] Meta-regression in network meta-analysis

Natan Gosmann n@t@n@go@m@nn @end|ng |rom gm@||@com
Sun Aug 22 04:48:51 CEST 2021


Thank you very much, Wolfgang!
It was really helpful.

Best,
Natan

Em sex., 20 de ago. de 2021 às 08:37, Viechtbauer, Wolfgang (SP) <
wolfgang.viechtbauer using maastrichtuniversity.nl> escreveu:

> As a follow-up -- I have added code to compute P-scores for this example
> here:
>
> https://wviechtb.github.io/metadat/reference/dat.senn2013.html
>
> It is slightly different (and doesn't depend on multcomp), but gives the
> same results.
>
> Best,
> Wolfgang
>
> >-----Original Message-----
> >From: R-sig-meta-analysis [mailto:
> r-sig-meta-analysis-bounces using r-project.org] On
> >Behalf Of Viechtbauer, Wolfgang (SP)
> >Sent: Wednesday, 18 August, 2021 13:46
> >To: Torbahn, Gabriel; Natan Gosmann; r-sig-meta-analysis using r-project.org
> >Subject: Re: [R-meta] Meta-regression in network meta-analysis
> >
> >Dear all,
> >
> >Catching up on emails after my summer break and saw your (unanswered)
> post.
> >
> >One can also compute P-scores based on a network meta-analysis conducted
> with
> >metafor, although this is not automated. Let's consider the example from:
> >
> >Rücker, G., & Schwarzer, G. (2015). Ranking treatments in frequentist
> network
> >meta-analysis works without resampling methods. BMC Medical Research
> Methodology,
> >15, 58. https://doi.org/10.1186/s12874-015-0060-8
> >
> >See here for the corresponding analysis using metafor:
> >
> >https://wviechtb.github.io/metafor/reference/dat.senn2013.html
> >
> >Go down to the part with the comment:
> >
> >### network meta-analysis using a contrast-based random-effects model
> >res <- rma.mv(yi, V, mods = ~ acarbose + benfluorex + metformin +
> miglitol +
> >pioglitazone +
> >                              rosiglitazone + sitagliptin + sulfonylurea +
> >vildagliptin - 1,
> >              random = ~ comp | study, rho=1/2, data=dat)
> >res
> >
> >### corresponding forest plot
> >forest(coef(res), diag(vcov(res)), slab=names(coef(res)), order="obs",
> >       xlim=c(-3.0, 2.5), alim=c(-1.5, 0.5), psize=1, xlab="Estimate",
> >header="Treatment")
> >
> >The results are slightly different from Figure 4 in the paper because
> netmeta in
> >this example is not using REML estimation, but the results are
> essentially the
> >same.
> >
> >In order to compute P-scores, we need to compute p-values for all pairwise
> >comparisons, including the reference treatment (in this case, placebo),
> which was
> >left out of 'mods' (to make it the reference treatment). So, we need to
> add 0 as
> >the coefficient for placebo and also set the corresponding row/column in
> the var-
> >cov matrix of the coefficients to 0. Then we can get all these p-values
> with:
> >
> >require(multcomp)
> >contr <- contrMat(rep(1:(res$p+1)), type="Tukey")
> >b <- coef(res)
> >vb <- vcov(res)
> >b <- c(b[1:5],0,b[6:9])
> >vb <- bldiag(vb[1:5,1:5],0,vb[6:9,6:9])
> >pvals <- apply(contr, 1, function(x) pnorm((x%*%b) / sqrt(t(x)%*%vb%*%x)))
> >
> >And we can create Table 2 with:
> >
> >tab <- vec2mat(pvals, corr=FALSE)
> >tab[lower.tri(tab)] <- t((1 - tab)[lower.tri(tab)])
> >rownames(tab) <- colnames(tab) <-
> >abbreviate(c(names(coef(res))[1:5],"placebo",names(coef(res))[6:9]))
> >round(tab, 2)
> >
> >Finally, we can get the P-scores with:
> >
> >cbind(round(sort(apply(tab, 1, mean, na.rm=TRUE), decreasing=TRUE), 3))
> >
> >These are the same values as in Table 3 (except for the slight
> discrepancy due to
> >rma.mv() using REML and netmeta in the example using a DL-type
> estimator).
> >
> >One could include potential moderators in the example above to do a
> network meta-
> >regression. I would center these moderators at some meaningful values, so
> that one
> >could interpret the treatment effect estimates (as above) as the predicted
> >estimates at the values at which the predictors were centered. Then one
> could
> >proceed as above to compute P-scores conditional on those predictors.
> >
> >Best,
> >Wolfgang
> >
> >>-----Original Message-----
> >>From: R-sig-meta-analysis [mailto:
> r-sig-meta-analysis-bounces using r-project.org] On
> >>Behalf Of Torbahn, Gabriel
> >>Sent: Thursday, 12 August, 2021 10:47
> >>To: Natan Gosmann; r-sig-meta-analysis using r-project.org
> >>Subject: Re: [R-meta] Meta-regression in network meta-analysis
> >>
> >>Good morning,
> >>
> >>just a follow-up on this question:
> >>has there been an answer to this issue?
> >>
> >>Thank you and best regards,
> >>Gabriel
> >>________________________________
> >>Von: R-sig-meta-analysis <r-sig-meta-analysis-bounces using r-project.org> im
> Auftrag
> >>von Natan Gosmann <natan.gosmann using gmail.com>
> >>Gesendet: Freitag, 6. August 2021 08:04:12
> >>An: r-sig-meta-analysis using r-project.org
> >>Betreff: [R-meta] Meta-regression in network meta-analysis
> >>
> >>Dear colleagues,
> >>
> >>We are currently performing a network meta-analysis to evaluate the
> >>efficacy of some interventions. In order to provide more complete
> results,
> >>it would be really helpful to estimate treatment rankings; however, we
> >>think it would be essential to also perform meta-regression analysis.
> >>Netmeta can estimate treatment rankings and metafor can perform the
> >>meta-regression analyses; nevertheless, to the best of our knowledge,
> none
> >>of them can perform both analyses.
> >>Is there any way to estimate treatment rankings in metafor (eg. SUCRA,
> >>p-score) or to perform meta-regression in network meta-analyses in
> netmeta?
> >>We didn't find this information in netmeta or metafor manual, so any
> >>guidance here would be really helpful.
> >>
> >>Best,
> >>Natan
> >
> >_______________________________________________
> >R-sig-meta-analysis mailing list
> >R-sig-meta-analysis using r-project.org
> >https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis
>

	[[alternative HTML version deleted]]



More information about the R-sig-meta-analysis mailing list