Closed zddzxxsmile closed 4 years ago
I seems that you are using an outdated version of netmeta. With the current version of netmeta on CRAN (or the GitHub development version) I get an additional error message that treatment estimates are inconsistent in Frank1990.
This is obvious, for example, for the following direct and indirect comparison of IPT+ADM vs IPT: direct lnHR: -1.43 indirect lnHR (IPT+ADM vs placebo - IPT vs placebo): -2.19 - -0.62 = -1.57
All pairwise comparisons in a multi-arm study are consistent by definition which is obviously not the case in Frank1990. Therefore, I would suggest that you check your hazard ratios first. Maybe your problems with inconsistent variances will disappear if you fix the treatment estimates.
Hello, Thanks for your reply. Currently I use a [Package netmeta version 1.2-0 ]. Sorry I present the wrong dataset of Frank1990. The data of 4-arm study is the following: study treat1 treat2 lnHR selnHR Frank1990 IPT ADM 1.34 0.45 Frank1990 IPT+ADM ADM -0.05 0.58 Frank1990 placebo ADM 1.75 0.48 Frank1990 IPT IPT+ADM 1.39 0.45 Frank1990 IPT placebo -0.41 0.3 Frank1990 placebo IPT+ADM 1.8 0.52
net1 <- netmeta(lnHR, selnHR, t1, t2, id, data = data33, sm = "HR",
- comb.fixed = FALSE, details.chkmultiarm = TRUE)
Multi-arm studies with inconsistent variances / standard errors:
studlab treat1 treat2 varTE resid.var seTE resid.se Frank1990 ADM IPT 0.2025 0.01441667 0.45 0.12006942 Frank1990 ADM IPT+ADM 0.3364 -0.00883333 0.58 -0.09398581 Frank1990 ADM placebo 0.2304 -0.00558333 0.48 -0.07472171 Frank1990 IPT IPT+ADM 0.2025 -0.00558333 0.45 -0.07472171 Frank1990 IPT placebo 0.0900 -0.00883333 0.30 -0.09398581 Frank1990 IPT+ADM placebo 0.2704 0.01441667 0.52 0.12006942
Legend: resid - residual deviation (observed minus expected) varTE - variance of treatment estimate seTE - standard error of treatment estimate
Error: Problem in multi-arm studies!
I try to use the option tol.multiarm.se like following:
net1 <- netmeta(lnHR, selnHR, t1, t2, id, data = data33, sm = "HR",
- comb.fixed = FALSE, details.chkmultiarm = TRUE, tol.multiarm.se = 0.121)
Multi-arm studies with zero treatment arm variance:
studlab treat var.treat Wang2017 ADM 0.0048 Wang2017 ADM+TMS 0.0628 Wang2017 TMS 0.0528
Legend: var.treat - treatment arm variance
Warning messages: 1: Note, treatments within a comparison have been re-sorted in increasing order. 2: Note, for the following multi-arm study a zero treatment arm variance has been calculated: 'Wang2017'
The first problem seems to be solved, but a zero treatment arm variance has been calculated for 'Wang2017'.
I try a tol.multiarm.se = 0.12 but remain get the first error report:
net1 <- netmeta(lnHR, selnHR, t1, t2, id, data = data33, sm = "HR",
- comb.fixed = FALSE, details.chkmultiarm = TRUE, tol.multiarm.se = 0.12)
Multi-arm studies with inconsistent variances / standard errors:
studlab treat1 treat2 varTE resid.var seTE resid.se Frank1990 ADM IPT 0.2025 0.01441667 0.45 0.12006942 Frank1990 ADM IPT+ADM 0.3364 -0.00883333 0.58 -0.09398581 Frank1990 ADM placebo 0.2304 -0.00558333 0.48 -0.07472171 Frank1990 IPT IPT+ADM 0.2025 -0.00558333 0.45 -0.07472171 Frank1990 IPT placebo 0.0900 -0.00883333 0.30 -0.09398581 Frank1990 IPT+ADM placebo 0.2704 0.01441667 0.52 0.12006942
Multi-arm studies with zero treatment arm variance:
studlab treat var.treat Wang2017 ADM 0.0048 Wang2017 ADM+TMS 0.0628 Wang2017 TMS 0.0528
Legend: resid - residual deviation (observed minus expected) varTE - variance of treatment estimate seTE - standard error of treatment estimate var.treat - treatment arm variance
Error: Problems in multi-arm studies!
How I can resolve the first problem and not lead to a zero treatment arm variance to be calculated for other study? I attach the whole datasets with this comment. minusADMtest4.xlsx
I try to make the selnHR of all arms of Frank1990 be the same value, which can fix the problem. Can I just caculate the arithmetic mean of selnHR in Frank1990?
You can calculate the arithmetic mean of variances to get identical standard errors for Frank1990. E.g.,
data33$selnHR.orig <- data33$selnHR
data33$selnHR[data33$id == "Frank1990"] <-
sqrt(mean(data33$selnHR[data33$id == "Frank1990"]^2))
##
netmeta(lnHR, selnHR, t1, t2, id, data = data33, sm = "HR",
comb.fixed = FALSE, reference.group = "plac")
P.S. I would be interested to have a closer look at the Tierney2007 method you used for Frank1990. I would expect that variances / standard errors are consistent for a multi-arm study. Maybe you could send me a personal email with further information.
minusADMtest.xlsx
Hello,
Thanks for your great contribution.
I worked with a network meta-analysis using HR as effect size. There is a 4-arm study in my dataset. When run the netmeta, error occur like the following:
Multi-arm studies with inconsistent variances / standard errors:
studlab treat1 treat2 varTE resid.var seTE resid.se Frank1990 ADM IPT 0.2025 -0.01521667 0.45 -0.12335585 Frank1990 ADM IPT+ADM 0.3364 0.02173333 0.58 0.14742230 Frank1990 ADM placebo 0.2304 -0.00651667 0.48 -0.08072587 Frank1990 IPT IPT+ADM 0.2704 -0.00651667 0.52 -0.08072587 Frank1990 IPT placebo 0.2209 0.02173333 0.47 0.14742230 Frank1990 IPT+ADM placebo 0.2809 -0.01521667 0.53 -0.12335585
Legend: resid - residual deviation (observed minus expected) varTE - variance of treatment estimate seTE - standard error of treatment estimate
Error: Problem in multi-arm studies!
The data of 4-arm study is the following: study treat1 treat2 lnHR selnHR Frank1990 | IPT | ADM | 1.34 | 0.45 Frank1990 | IPT | IPT+ADM | 1.43 | 0.45 Frank1990 | IPT | placebo | -0.62 | 0.3 Frank1990 | IPT+ADM | ADM | -0.05 | 0.58 Frank1990 | placebo | ADM | 1.75 | 0.48 Frank1990 | placebo | IPT+ADM | 2.19 | 0.52
How to solve this problem?
In the study Frank1990, selnHR were not reported. We calculated se using the method proposed by Tierney2007 (Practical methods for incorporating summary time-to-event data into meta-analysis).
I am looking forward for your reply;
Really thanks.