referencesNMA/otherScripts/ModelIPDADnetmeta.R

ModelIPDADnetmeta <- function(){
# Part 1: Model for IPD only
  # Model for IPD
  for (i in 1:N.IPD) {
    logit(p[i,t[i,1]])<- u[i]
    for(j in 1:J.IPD_i[i]){
      Y[i,j] ~ dbern(p[i,j])
      logit(p[i,j]) <- u[i] + theta[i,t[i,j]]
      }
  }
 # Vague prior for IPD
  for (i in 1:N.IPD) {
    u[i]~dnorm(0, 1e-6)

  }
# Part 2: Model for AD only
  for(i in 1:N.AD) {
    w[i,1]<- 0
    theta[i+N.IPD,t[i,1]]<- 0

    ##binomial likelihood of number of events for each arm k of study i

    for (k in 1:na[i]) {r[i,t[i,k]] ~ dbin(p[i,t[i,k]],n[i,t[i,k]])}
    ##parameterization of the 'true' effect of each comparison
    ##of arm k vs. baseline arm (1) of study i
    logit(p[i,t[i,1]])<- u0[i]

    for (k in 2:na[i]) {
      logit(p[i,t[i,k]])<- u0[i] + theta[i+N.IPD,t[i,k]]

      ##distribution of random effects
      theta[i+N.IPD,t[i,k]] ~ dnorm(md[i,t[i,k]],precd[i,t[i,k]])

      ## accounting for correlation between effect sizes estimated in multi-arm trials

      md[i,t[i,k]]<- mean[i,k] + sw[i,k]
      w[i,k]<- (theta[i,t[i,k]]  - mean[i,k])
      sw[i,k]<- sum(w[i,1:(k-1)])/(k-1)
      precd[i,t[i,k]]<- prec *2*(k-1)/k

      ##consistency equations
      mean[i,k] <-d[t[i,k]] - d[t[i,1]]
    }}

  ##prior distribution for log-odds in baseline arm of study i
  for (i in 1:N.AD) {u0[i] ~ dnorm(0,.01)}


# Part 3: Model for combine IPD and AD
  ##prior distribution for heterogeneity
  tau ~ dnorm(0,1)%_%T(0,)
  prec<- 1/pow(tau,2)
  tau.sq<- pow(tau,2)
  ##prior distribution for basic parameters
  d[ref] <- 0
  for(k in 1:(ref-1)) {d[k] ~ dnorm(0,.01)}
  for(k in (ref+1):nt) {d[k] ~ dnorm(0,.01)}

  ##OR for each comparison
  for(i in 1:(nt-1)) {
    for (j in (i+1):nt) {
      OR[j,i]<- exp(d[j] - d[i])
      LOR[j,i]<- d[j] - d[i]}}

  for(j in 1:(ref-1)){ORref[j]<- exp(d[j] - d[ref])}
  for(j in (ref+1):nt) {ORref[j]<- exp(d[j] - d[ref])}
}
htx-r/GenericModelNMA documentation built on Nov. 10, 2020, 2:36 a.m.