Blockers: random effects meta-analysis of clinical trials
Carlin (1992) considers a Bayesian approach to meta-analysis, and includes the following examples of 22 trials of beta-blockers to prevent mortality after myocardial infarction.
![[blockers1]](blockers1.bmp)
In a random effects meta-analysis we assume the true effect (on a log-odds scale)
δi in a trial
i is drawn from some population distribution.Let r
Ci denote number of events in the control group in trial
i, and r
Ti denote events under active treatment in trial
i. Our model is:
r
Ci ~ Binomial(p
Ci, n
Ci)
r
Ti ~ Binomial(p
Ti, n
Ti)
logit(p
Ci)
=
μi
logit(p
Ti) =
μi +
δi
δi ~ Normal(d,
τ)
``Noninformative'' priors are given for the
μi's.
τ and d. The graph for this model is shown in below. We want to make inferences about the population effect d, and the predictive distribution for the effect
δnew in a new trial.
Empirical Bayes methods estimate d and
τ by maximum likelihood and use these estimates to form the predictive distribution p(
δnew | d
hat,
τhat ).
Full Bayes allows for the uncertainty concerning d and
τ.
Graphical model for blocker example:
BUGS language for blocker example:
model
{
for( i in 1 : Num ) {
rc[i] ~ dbin(pc[i], nc[i])
rt[i] ~ dbin(pt[i], nt[i])
logit(pc[i]) <- mu[i]
logit(pt[i]) <- mu[i] + delta[i]
mu[i] ~ dnorm(0.0,1.0E-5)
delta[i] ~ dnorm(d, tau)
}
d ~ dnorm(0.0,1.0E-6)
tau ~ dgamma(0.001,0.001)
delta.new ~ dnorm(d, tau)
sigma <- 1 / sqrt(tau)
}
Data
list(rt = c(3, 7, 5, 102, 28, 4, 98, 60, 25, 138, 64, 45, 9, 57, 25, 33, 28, 8, 6, 32, 27, 22 ),
nt = c(38, 114, 69, 1533, 355, 59, 945, 632, 278,1916, 873, 263, 291, 858, 154, 207, 251, 151, 174, 209, 391, 680),
rc = c(3, 14, 11, 127, 27, 6, 152, 48, 37, 188, 52, 47, 16, 45, 31, 38, 12, 6, 3, 40, 43, 39),
nc = c(39, 116, 93, 1520, 365, 52, 939, 471, 282, 1921, 583, 266, 293, 883, 147, 213, 122, 154, 134, 218, 364, 674),
Num = 22)
Inits for chain 1
list(d = 0, delta.new = 0, tau=1, mu = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
delta = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
Inits for chain 2
list(d = 2, delta.new = 2, tau=0.1, mu = c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2),
delta = c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2))
Results![[blockers3]](blockers3.bmp)
Our estimates are lower and with tighter precision - in fact similar to the values obtained by Carlin for the empirical Bayes estimator. The discrepancy appears to be due to Carlin's use of a uniform prior for
σ2 in his analysis, which will lead to increased posterior mean and standard deviation for d, as compared to our (approximate) use of p(
σ2) ~ 1 /
σ2 (see his Figure 1).
In some circumstances it might be reasonable to assume that the population distribution has heavier tails, for example a t distribution with low degrees of freedom. This is easily accomplished in
BUGS by using the dt distribution function instead of dnorm for
δ and
δnew.