guido-s / netmeta

Official Git repository of R package netmeta
http://cran.r-project.org/web/packages/netmeta/index.html
GNU General Public License v2.0
28 stars 12 forks source link

NMA with Hazard Ratio (vs. placebo) #4

Closed aaronxs closed 5 years ago

aaronxs commented 5 years ago

Hi Guido,

I am trying to run an NMA with hazard ratio (vs. placebo) as the treatment effect. The data is in the long arm-based format so I tried using pairwise to convert it into the contrast-base format (which is required for netmeta). However, I get an error saying the length of treat and mean are different.

This makes sense as the data is "missing" an entry in the placebo arm for logHR and selogHR, but since the treatment effect is hazard ratio vs placebo, there isn't a value for the placebo arm.

My question: is there a way I should inout the data so that I can use pairwise to convert the data into contrast-based format?

Thanks! Aaron

Here is the code I use to ran the analysis :

datt <- read.table(textConnection("logHR2   logHR3  selogHR2    selogHR3    t1  t2  t3  N1  N2  N3  Study
-0.31   NA  0.15    NA  Placebo A   NA  62  122 NA  XX
-0.375  -0.434  0.15    0.17    Placebo B   C   81  82  80  YY"), header = T)

pairs <- pairwise(n = list(N1, N2, N3),
               mean = list(logHR2, logHR3),
               sd = list(selogHR2, selogHR3),
               treat = list(t1, t2, t3),
               data = datt,
               studlab = Study)
guido-s commented 5 years ago

Dear Aaron,

In your setting, the (log) hazard ratios are already the treatment comparisons of interest. Accordingly, use of pairwise() is not necessary and you actually use the function in a wrong way as arguments n, mean and sd are reserved for (standardized) mean differences.

Study YY comparing treatments B, C, and Placebo must provide three pairwise comparisons: B vs Placebo, C vs Placebo and B vs C. You already have the comparisons B vs Placebo and C vs Placebo. The third estimate B vs C can be calculated straightforward from the other two estimates and is equal to -0.059 (if -0.375 refers to the comparison Placebo vs B) or 0.059 (if -0.375 refers to the comparison B vs Placebo).

According to Rücker et al., 2017, the third standard error can be estimated as the square root of the average of the squared standard errors of the other two comparisons; see also equation (9) in Rücker et al., 2017 for unequal sample sizes), i.e., sqrt((0.15^2 + 0.17^2) / 2) = 0.16.

datt <- read.table(textConnection("logHR    selogHR t1  t2  N1  N2  Study
-0.31   0.15    Placebo A   62  122 XX
-0.375  0.15    Placebo B   81  82  YY
-0.434  0.17    Placebo C   81  80  YY
-0.059  0.16    B   C   82  80  YY"), header = T)

netmeta(logHR, selogHR, t1, t2, Study, data = datt, sm = "HR",
        n1 = N1, n2 = N2, ref = "Plac")

Best wishes, Guido

Reference: Rücker G, Cates CJ, Schwarzer G (2017): Methods for including information from multi-arm trials in pairwise meta-analysis. Res Synth Methods, 8:392–403