# Normal likelihood, identity link
# Fixed effects model
model{ # PROGRAM STARTS
for(i in 1 :ns){ # LOOP THROUGH STUDIES
mu[i]~dnorm(0,.0001) # vague priors for all trial baseline
for (k in 1 :na[i]) { # LOOP THROUGH ARMS
var[i,k] <- pow(se[i,k],2) # calculate variances
prec[i,k] <- l/var[i,k] # set precisions
y[i,k]~dnorm(theta[i,k],prec[i,k]) # binomial likelihood
#model for linear predictor
theta[i,k] <- mu[i] + d[t[i,k]] -d[t[i,l]]
#Deviance contribution
dev[i,k] <- (y[i,k]-theta[i,k])*(y[i,k]-theta[i,k])*prec[i,k]
}
# summed residual deviance contribution for this trial
resdev[i] <- sum(dev[i,l:na[i]])
}
totresdev <- sum(resdev[]) #Total Residual Deviance
d[l]<-0 # treatment effect is zero for control arm
#vague priors for treatment effects
for (k in 2:nt){ d[k] ~ dnorm(0,.0001)}
#Provide estimates of treatment effects T[k] on the natural scale
#Given a Mean Effect, meanA, for 'standard' treatment A,
#with precision (1/variance) precA
A ~ dnorm(meanA,precA)
for (k in 1 :nt) { T[k] <- A + d[k] }
#ranking on relative scale
for (k in l:nt){
rk[k]<-nt+l-rank(d[],k)
best [k]<-equals(rk[k], 1) #the probability of becoming the best
}
#Pairwise difference for all possible pairwise comparisons,if nt>2
for (c in l:(nt-l)){
for (k in (c+l):nt){
Dif[c,k]<-(d[k]-d[c])
}
}
} #*** PROGRAM ENDS
list(ns=22, nt=5)
t[ ,1] t[ ,2] y[ ,1] y[ ,2] se[ ,1] se[ ,2] na[ ]
1 5 46.36 50.67 0.25 0.31 2
1 4 46.00 29.00 0.58 0.15 2
1 4 21.16 18.94 0.25 0.29 2
1 4 23.77 23.94 0.14 0.20 2
1 2 41.04 20.00 0.17 0.27 2
1 2 49.30 30.90 0.25 0.30 2
1 3 20.89 10.56 0.16 0.16 2
1 3 21.10 18.00 0.33 0.25 2
1 2 48.42 20.95 0.06 0.32 2
2 3 24.46 18.13 0.11 0.23 2
1 3 45.30 20.15 0.06 0.18 2
1 3 33.00 17.97 0.31 0.35 2
1 3 45.81 26.95 0.54 0.55 2
1 3 22.13 16.53 0.43 0.21 2
3 5 32.25 22.77 0.39 0.27 2
2 5 28.45 18.57 0.50 0.41 2
3 5 37.93 22.95 0.45 0.31 2
1 4 23.30 13.07 0.49 0.09 2
1 3 32.88 27.14 0.16 0.28 2
1 2 12.46 16.15 0.19 0.42 2
1 4 16.02 10.05 0.15 0.33 2
2 3 34.30 28.49 0.34 0.33 2
END
list=(d=c(0,0,0,0,0),sd=1,mu=c(0,0,0,0,0))
谢谢各位大神!