I'm trying to use GeMTC (a package for Bayesian Network Meta Analysis) for an analysis that mixes contrast-based data (Hazard Ratio;HR) with arm-based data (event counts). The documentation specifies that this is possible, but requires the standard error of the log-hazard in the baseline arm for mutli-arm trials.

Relative effect data. A data frame defining the arms of each study, containing the columns ‘study’ and ‘treatment’, where ‘treatment’ must refer to an existing treatment ID if treatments were specified. The column ‘diff’ specifies the mean difference between the current arm and the baseline arm; set ‘diff=NA’ for the baseline arm. The column ‘std.err’ specifies the standard error of the mean difference (for non-baseline arms). For trials with more than two arms, specify the standard error of the mean of the baseline arm in ‘std.err’, as this determines the covariance of the differences"
(from the mtc.network manual)

Unfortunately, this data is not available. However, a paper by Woods et.al. specifies that it is possible to compute/approximate.

The variance for a log hazard ratio is the sum of the variances for the individual log hazards. Standard errors of the log hazards for each trial arm can therefore be estimated by solving simultaneous equations based on the standard errors for the set of log-hazard ratios. For example: \begin{equation} se_b = \sqrt{((se^2_{k_1,b} + se^2_{k_2,b} - se^2_{k_1,k_2} )/2)} \end{equation} Where $se^2_{i,j}$ is the variance of the log hazard ratio comparing arm $i$ to arm $j$ and $se_i$ is the standard error of the log hazard for arm $i$. The standard errors of the log hazards for the other treatment arms are then estimated as: \begin{equation} se_k=\sqrt{se^2_{k,b} - se^2_b} \end{equation}

The paper then goes on outlining how to compute $se_{k_1,k_2}$ in formula 9.

In order to estimate standard errors of the log hazards for each treatment, we required estimates of the uncertainty associated with four treatment contrasts. In some cases this data may not be available and thus the methods presented in equations 7 and 8 may not be feasible. For example, hazard ratios and associated measures of uncertainty may only be available for each active treatment relative to a single common comparator (e.g. placebo) as is commonly reported in the published literature.

However I am at a loss on how to apply these formulas correctly in GeMTC.

Replicating the data from Woods I have the following code:

data.ab <- read.table(textConnection('
study treatment responders  sampleSize
01  Salmeterol  1 229
01  Placebo 1 227
02  Fluticasone 4 374
02  Salmeterol  3 372
02  SFC 2 358
02  Placebo 7 361
03  Salmeterol  1 554
03  Placebo 2 270'), header=T)

data.re <- read.table(textConnection('
study treatment diff  std.err
04  Placebo NA  NA
04  Fluticasone -0.276  0.203
05  Placebo NA 0.066
05  SFC -0.209  0.098
05  Salmeterol  -0.154  0.096
05  Fluticasone 0.055 0.092
'), header=T)

network <- mtc.network(data.ab=data.ab, data.re=data.re)
model <- mtc.model(network, link="cloglog", likelihood="binom", linearModel="fixed")
mtc.run(model) -> results
forest(relative.effect(results, t1="Placebo"))

I used their value from Table 3 (0.66) as the value for the log-hazard standard error of Placebo. The results are similar. But, I cannot compute this value in the general case of > 2-arm studies when data comes in as Table 2.

enter image description here Help would be much appreciated!

(Github issue)


1 Answer 1


For brevity, let me refer to the treatments in the TORCH trial as A (Placebo), B (SFC), C (Salmeterol), and D (Fluticasone). Let me call $d_{AB}$ the effect of B with A as the base, i.e. the first row of data for the TORCH trial. The basic relationship between the relative effects is given by:

$$d_{BC} = d_{AC} - d_{AB}$$

$$Var(d_{BC}) = Var(d_{AC}) + Var(d_{AB}) - 2 Cov(d_{AB}, d_{AC})$$

Because $Var(d_{AB}) = Var(y_A) + Var(y_B)$ etc., we get that $Cov(d_{AB}, d_{AC}) = Var(y_A)$, where $y_A$ is the log-hazard of $A$ (see e.g. the NICE DSU TSD 2, page 37, or the paper by Franchini et al..

Hence the table defines the following constraints that should allow you to work out $Var(y_A)$ and hence $SE(y_A)$:

$$ Var(d_{BC}) = Var(d_{AC}) + Var(d_{AB}) - 2 Var(y_A) $$

$$ Var(d_{BD}) = Var(d_{AD}) + Var(d_{AB}) - 2 Var(y_A) $$

So there is no need to approximate, you should be able to get an exact answer and even cross-check it.

I get 0.0664 and 0.0665, respectively, for the standard error in the baseline arm.

  • $\begingroup$ Makes sense! Thanks! What if neither $d_{BC}$ nor $d_{BD}$ are given (only data relative to the base was provided?) $\endgroup$
    – JoelKuiper
    Jan 5, 2016 at 11:54
  • $\begingroup$ In that case you have to make an assumption on the correlation $\rho$. $Var(y_A) = Cov(d_{AB}, d_{AC}) = \rho SE(d_{AB}) SE(d_{AC})$; typically you would assume $\rho = 0.5$ or $\rho = 0.7$, but perform a sensitivity analysis for this assumption. If you know the covariance in most but not all trials you could derive a 'typical' correlation and use that (but a sensitivity analysis is still advisable). $\endgroup$
    – gertvv
    Jan 5, 2016 at 16:39
  • $\begingroup$ Wouldn't it also be possible to use formula 9 from the paper to impute $Var(d_{AB})$ and use that in the equation outlined above? $\endgroup$
    – JoelKuiper
    Jan 5, 2016 at 17:09
  • $\begingroup$ Yes, that's definitely possible, though I can't comment on how accurate that would be. $\endgroup$
    – gertvv
    Jan 6, 2016 at 10:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.