Personal tools

Members

You are here: University Home Members ajs22 hchchg

hchchg

Supplementary material for the paper:

Mixed comparison of stroke prevention treatments in individuals with non-rheumatic atrial fibrillation. Archives of Internal Medicine

 

 

EVIDENCE SYNTHESIS MODEL

A random effects Poisson regression model (Spiegelhalter et al. 2004) was applied using the following model specification:

Where rjk is the number of events and pyjk is the patient years of follow-up in trial j under treatment k.   ljk is the mean of Poisson distribution in trial j under treatment k, mjb is the log rate of an event (e.g. ischemic stroke, bleed, etc.) in trial j on baseline treatment b, and djbk is the trial-specific loge(rate ratio) of treatment k relative to treatment b.  dbk is the pooled loge(rate ratio) for treatment k relative to treatment b and V is the between-study variance parameter often referred to as the heterogeneity parameter as it estimates how much variation exists between the results of the different studies. 

 

The model needs to take into account the correlation structure induced by the multi-arm trials; for example, multi-arm trials of A vs. B vs. C will induce a covariance between the trial-specific log rate ratios, djAB and djAC.  This correlation structure can be formulated by the decomposition of multivariate normal distribution as a series of conditional univariate distributions (Caldwell et al. 2005).  If

then the conditional univariate distributions are:

                  

 

The analyses were conducted in the freely available Bayesian software, WinBUGS20.  Therefore, prior distributions needed to be specified for mjb, d and V. All prior distributions in this analysis were intended to be vague:

             

 

The goodness-of-fit of the model to the data was measured by calculating the residual deviance

 

Where loglikmodel and logliksaturated are the deviances for the fitted model and the saturated model respectively. The deviance measures the fit of the model to the data points using the likelihood function.  For Poisson data, the residual deviance is given by:

Where  is the observed number of events (i.e. ischemic stroke or bleed) and  is the expected number of events estimated from the current model for j =1 to J trials and k represents the treatments compared in trial j.  Under the null hypothesis that the model provides an adequate fit to the data, it is expected that would have a mean equal to the number of unconstrained data points. 

 

 

References:

Caldwell DM, Ades AE, Higgins JPT. Simultaneous comparison of multiple treatments: combining direct and indirect evidence. BMJ 2005;331:897-900.

Spiegelhalter DJ, Abrams KR, Myles JP. Bayesian Approaches to Clinical Trials and Health-care Evaluation (Statistics in Practice). Chichester: John Wiley and Sons Ltd; 2004.

 

WinBUGS code for mixed treatment comparisons

model

{

for(i in 1:ns)

{

w[i,1] <-0

delta[i,t[i,1]]<-0

mu[i] ~ dunif(-10,10)                                                                                            # vague priors for trial baselines

for (k in 1:na[i]) 

{

r[i,t[i,k]] ~ dpois(lambda[i,t[i,k]])                                                                        # Poisson distribution

log(lambda[i,t[i,k]])<-log(py[i,t[i,k]]/1000)+mu[i]+delta[i,t[i,k]]     # evidence synthesis model

}

                for (k in 2:na[i])

{

delta[i,t[i,k]] ~ dnorm(md[i,t[i,k]],taud[i,t[i,k]])                 # trial-specific log rate ratio (LRR)

md[i,t[i,k]] <-  d[t[i,k]] - d[t[i,1]]  + sw[i,k]                         # mean of LRR distribution

taud[i,t[i,k]] <- tau * 2*(k-1)/k                                            # precision of LRR distribution

w[i,k] <- delta[i,t[i,k]]  - d[t[i,k]] + d[t[i,1]]                         # adjustment, multi-arm RCTs

sw[i,k] <-sum(w[i,1:k-1]) /(k-1)                                           # cumulative adjustment for multi-arm trials

}

}  

d[1]<-0

for (k in 2:nt)

{

d[k] ~ dunif(-10,10)                                                              # vague priors for basic parameters

}  

sd~dunif(0,2)                                                                                        # vague prior for random effects standard deviation

tau<-1/pow(sd,2)

for (i in 1:ns)

{

mu1[i] <- mu[i] * equals(t[i,1],1)

}

for (k in 1:nt) 

{

log(T[k])<- sum(mu1[])/nb +d[k]

}

for (k in 1:nt)

{

rk[k]<- rank(T[],k)                                                 #Ranking treatments

              best[k]<-equals(rk[k],1)                                                         #Proportion each treatment the ‘best’ (i.e. ranked 1)

}

for (c in 1:(nt-1))                                                                                   #Pairwise rate ratio

{

for (k in (c+1):nt)

{

rr[c,k] <-exp(d[k]-d[c])

}

}

}

 

#Data

list(nt= 9,ns=19, nb=8)

 

r[,1]    py[,1]    r[,2]    py[,2]    r[,2]    py[,3]    r[,4]    py[,4]    r[,5]    py[,5]    r[,6]    py[,6]    r[,7]    py[,7]    r[,8]    py[,8]    r[,9]    py[,9]    t[,1]    t[,2]    t[,3]    t[,4]    na[]

……..

……..   

END