Sensitivity to prior distributions: application to Magnesium meta-analysis

   model
   {
   #   j indexes alternative prior distributions
      for (j in 1:6) {
         mu[j] ~ dunif(-10, 10)
         OR[j] <- exp(mu[j])
      
   #   k indexes study number
      for (k in 1:8) {
         theta[j, k] ~ dnorm(mu[j], inv.tau.sqrd[j])
         rtx[j, k] ~ dbin(pt[j, k], nt[k])
         rtx[j, k] <- rt[k]
         rcx[j, k] ~ dbin(pc[j, k], nc[k])
         rcx[j, k] <- rc[k]
         logit(pt[j, k]) <- theta[j, k] + phi[j, k]
         phi[j, k] <- logit(pc[j, k])
         pc[j, k] ~ dunif(0, 1)
      }
   }
      
   #   k again indexes study number
   for (k in 1:8) {
      # log-odds ratios:
      y[k] <- log(((rt[k] + 0.5) / (nt[k] - rt[k] + 0.5)) / ((rc[k] + 0.5) / (nc[k] - rc[k] + 0.5)))
#    variances & precisions:
      sigma.sqrd[k] <- 1 / (rt[k] + 0.5) + 1 / (nt[k] - rt[k] + 0.5) + 1 / (rc[k] + 0.5) +
               1 / (nc[k] - rc[k] + 0.5)
      prec.sqrd[k] <- 1 / sigma.sqrd[k]
   }
   s0.sqrd <- 1 / mean(prec.sqrd[1:8])
   # Prior 1: Gamma(0.001, 0.001) on inv.tau.sqrd

   inv.tau.sqrd[1] ~ dgamma(0.001, 0.001)
   tau.sqrd[1] <- 1 / inv.tau.sqrd[1]
   tau[1] <- sqrt(tau.sqrd[1])

# Prior 2: Uniform(0, 50) on tau.sqrd

   tau.sqrd[2] ~ dunif(0, 50)
   tau[2] <- sqrt(tau.sqrd[2])
   inv.tau.sqrd[2] <- 1 / tau.sqrd[2]

# Prior 3: Uniform(0, 50) on tau

   tau[3] ~ dunif(0, 50)
   tau.sqrd[3] <- tau[3] * tau[3]
   inv.tau.sqrd[3] <- 1 / tau.sqrd[3]

# Prior 4: Uniform shrinkage on tau.sqrd

   B0 ~ dunif(0, 1)
   tau.sqrd[4] <- s0.sqrd * (1 - B0) / B0
   tau[4] <- sqrt(tau.sqrd[4])
   inv.tau.sqrd[4] <- 1 / tau.sqrd[4]

# Prior 5: Dumouchel on tau

   D0 ~ dunif(0, 1)
   tau[5] <- sqrt(s0.sqrd) * (1 - D0) / D0
   tau.sqrd[5] <- tau[5] * tau[5]
   inv.tau.sqrd[5] <- 1 / tau.sqrd[5]

# Prior 6: Half-Normal on tau.sqrd

   p0 <- phi(0.75) / s0.sqrd
   tau.sqrd[6] ~ dnorm(0, p0)T(0, )
   tau[6] <- sqrt(tau.sqrd[6])
   inv.tau.sqrd[6] <- 1 / tau.sqrd[6]

   }


Data
list(rt = c(1, 9, 2, 1, 10, 1, 1, 90), nt = c(40, 135, 200, 48, 150, 59, 25, 1159),
rc = c(2, 23, 7, 1, 8, 9, 3, 118), nc = c(36, 135, 200, 46, 148, 56, 23, 1157))
Inits for chain 1
list(mu = c(-0.5, -0.5, -0.5, -0.5, -0.5, -0.5), tau = c(NA, NA, 1, NA, NA, NA),
tau.sqrd = c(NA, 1, NA, NA, NA, 1), inv.tau.sqrd = c(1, NA, NA, NA, NA, NA))
   
Inits for chain 2
list(mu = c(0.5, 0.5, 0.5, 0.5, 0.5, 0.5), tau = c(NA, NA, 0.1, NA, NA, NA),
tau.sqrd = c(NA, 0.1, NA, NA, NA, 0.1), inv.tau.sqrd = c(0.1, NA, NA, NA, NA, NA))
Results

[magnesium1]

[magnesium2]

[magnesium3]

[magnesium4]

[magnesium5]