$m0a
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- 0

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i]
  }

  # Priors for the model for O1
  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2]) 
 
}
$m0b
model { 

 
  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- 0

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]
  }

  # Priors for the model for O2
  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
}
$m1a
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- (M_lvlone[i, 3] - spM_lvlone[3, 1])/spM_lvlone[3, 2] * beta[1]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i]
  }

  # Priors for the model for O1
  for (k in 1:1) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2]) 
 
}
$m1b
model { 

 
  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 3] - spM_lvlone[3, 1])/spM_lvlone[3, 2] * beta[1]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]
  }

  # Priors for the model for O2
  for (k in 1:1) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
}
$m2a
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[1]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i]
  }

  # Priors for the model for O1
  for (k in 1:1) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 3] * alpha[1]
  }

  # Priors for the model for C2
  for (k in 1:1) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)
 
 
}
$m2b
model { 

 
  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[1]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]
  }

  # Priors for the model for O2
  for (k in 1:1) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 3] * alpha[1]
  }

  # Priors for the model for C2
  for (k in 1:1) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)
 
 
}
$m3a
model { 

 
  # Normal model for C1 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dnorm(mu_C1[i], tau_C1)
    mu_C1[i] <- M_lvlone[i, 2] * beta[1] + M_lvlone[i, 3] * beta[2] +
                M_lvlone[i, 4] * beta[3] + M_lvlone[i, 5] * beta[4]
  }

  # Priors for the model for C1
  for (k in 1:4) {
    beta[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C1 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C1 <- sqrt(1/tau_C1)
 
 
}
$m3b
model { 

 
  # Normal model for C1 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dnorm(mu_C1[i], tau_C1)
    mu_C1[i] <- M_lvlone[i, 3] * beta[1] + M_lvlone[i, 4] * beta[2] +
                M_lvlone[i, 5] * beta[3] + M_lvlone[i, 6] * beta[4]
  }

  # Priors for the model for C1
  for (k in 1:4) {
    beta[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C1 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C1 <- sqrt(1/tau_C1)




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- 0

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 4] <- ifelse(M_lvlone[i, 2] == 2, 1, 0)
    M_lvlone[i, 5] <- ifelse(M_lvlone[i, 2] == 3, 1, 0)
    M_lvlone[i, 6] <- ifelse(M_lvlone[i, 2] == 4, 1, 0)
  }

  # Priors for the model for O2
  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
}
$m4a
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 6] * beta[1] + M_lvlone[i, 7] * beta[2] +
                 M_lvlone[i, 8] * beta[3] + M_lvlone[i, 9] * beta[4] +
                 M_lvlone[i, 10] * beta[5] + M_lvlone[i, 11] * beta[6] +
                 (M_lvlone[i, 12] - spM_lvlone[12, 1])/spM_lvlone[12, 2] * beta[7] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[8] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[9] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[10] +
                 (M_lvlone[i, 16] - spM_lvlone[16, 1])/spM_lvlone[16, 2] * beta[11]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i]
  }

  # Priors for the model for O1
  for (k in 1:11) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] + M_lvlone[i, 6] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] +
                (M_lvlone[i, 17] - spM_lvlone[17, 1])/spM_lvlone[17, 2] * alpha[8]

    M_lvlone[i, 12] <- abs(M_lvlone[i, 17] - M_lvlone[i, 2])


  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] + M_lvlone[i, 9] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         (M_lvlone[i, 17] - spM_lvlone[17, 1])/spM_lvlone[17, 2] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] + M_lvlone[i, 9] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         (M_lvlone[i, 17] - spM_lvlone[17, 1])/spM_lvlone[17, 2] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] + M_lvlone[i, 9] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         (M_lvlone[i, 17] - spM_lvlone[17, 1])/spM_lvlone[17, 2] * alpha[23]

    M_lvlone[i, 6] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 17] - spM_lvlone[17, 1])/spM_lvlone[17, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 14] <- M_lvlone[i, 9] * M_lvlone[i, 12]
    M_lvlone[i, 15] <- M_lvlone[i, 10] * M_lvlone[i, 12]
    M_lvlone[i, 16] <- M_lvlone[i, 11] * M_lvlone[i, 12]
  }

 
}
$m4b
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- (M_lvlone[i, 5] - spM_lvlone[5, 1])/spM_lvlone[5, 2] * beta[1] +
                 (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[2] +
                 (M_lvlone[i, 7] - spM_lvlone[7, 1])/spM_lvlone[7, 2] * beta[3] +
                 (M_lvlone[i, 8] - spM_lvlone[8, 1])/spM_lvlone[8, 2] * beta[4]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i]
  }

  # Priors for the model for O1
  for (k in 1:4) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 4] * alpha[1] + M_lvlone[i, 9] * alpha[2] +
                M_lvlone[i, 10] * alpha[3] + M_lvlone[i, 11] * alpha[4] +
                M_lvlone[i, 12] * alpha[5] + M_lvlone[i, 13] * alpha[6] +
                M_lvlone[i, 14] * alpha[7] +
                (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * alpha[8]

    M_lvlone[i, 6] <- abs(M_lvlone[i, 15] - M_lvlone[i, 2])


  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- M_lvlone[i, 12] * alpha[9] + M_lvlone[i, 13] * alpha[10] +
                 M_lvlone[i, 14] * alpha[11] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * alpha[12]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)


    M_lvlone[i, 5] <- ifelse((M_lvlone[i, 3]) > (M_lvlone[i, 16]), 1, 0)

  }

  # Priors for the model for O2
  for (k in 9:12) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 8] <- M_lvlone[i, 5] * M_lvlone[i, 6]
  }

 
}
$m5a
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 7] * beta[1] + M_lvlone[i, 8] * beta[2] +
                 M_lvlone[i, 9] * beta[3] + M_lvlone[i, 10] * beta[4] +
                 M_lvlone[i, 11] * beta[5] + M_lvlone[i, 12] * beta[6]

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[7] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[8]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[9] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[10]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[11] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[12]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:12) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
}
$m5b
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 7] * beta[1] + M_lvlone[i, 8] * beta[2] +
                 M_lvlone[i, 9] * beta[3] + M_lvlone[i, 10] * beta[4] +
                 M_lvlone[i, 11] * beta[5] + M_lvlone[i, 12] * beta[6] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[7]

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[8] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[9]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[10] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[11]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[12] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[13]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:13) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 13] <- M_lvlone[i, 6] * M_lvlone[i, 2]
  }

 
}
$m5c
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 7] * beta[1] + M_lvlone[i, 8] * beta[2] +
                 M_lvlone[i, 9] * beta[3] + M_lvlone[i, 10] * beta[4] +
                 M_lvlone[i, 11] * beta[5] + M_lvlone[i, 12] * beta[6]

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[7] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[8] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[9]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[10] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[11] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[12]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[13] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[14] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[15]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:15) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 13] <- M_lvlone[i, 6] * M_lvlone[i, 2]
  }

 
}
$m5d
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 7] * beta[1] + M_lvlone[i, 8] * beta[2] +
                 M_lvlone[i, 9] * beta[3] + M_lvlone[i, 10] * beta[4] +
                 M_lvlone[i, 11] * beta[5] + M_lvlone[i, 12] * beta[6] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[7] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[8] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[9]

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[10] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[11]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[12] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[13]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[14] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[15]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:15) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 13] <- M_lvlone[i, 7] * M_lvlone[i, 2]
    M_lvlone[i, 14] <- M_lvlone[i, 8] * M_lvlone[i, 2]
    M_lvlone[i, 15] <- M_lvlone[i, 9] * M_lvlone[i, 2]
  }

 
}
$m5e
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- 0

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[1] +
                 M_lvlone[i, 7] * beta[2] + M_lvlone[i, 8] * beta[3] +
                 M_lvlone[i, 9] * beta[4] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[5] +
                 M_lvlone[i, 10] * beta[6] + M_lvlone[i, 11] * beta[7] +
                 M_lvlone[i, 12] * beta[8] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[9] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[10] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[11]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[12] +
                 M_lvlone[i, 7] * beta[13] + M_lvlone[i, 8] * beta[14] +
                 M_lvlone[i, 9] * beta[15] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[16] +
                 M_lvlone[i, 10] * beta[17] + M_lvlone[i, 11] * beta[18] +
                 M_lvlone[i, 12] * beta[19] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[20] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[21] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[22]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[23] +
                 M_lvlone[i, 7] * beta[24] + M_lvlone[i, 8] * beta[25] +
                 M_lvlone[i, 9] * beta[26] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[27] +
                 M_lvlone[i, 10] * beta[28] + M_lvlone[i, 11] * beta[29] +
                 M_lvlone[i, 12] * beta[30] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[31] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[32] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[33]

    p_O1[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 2:4])))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 1] - psum_O1[i, 2]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 3]))
    p_O1[i, 4] <- max(1e-10, min(1-1e-10, psum_O1[i, 3]))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:33) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] - exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] - exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 13] <- M_lvlone[i, 7] * M_lvlone[i, 2]
    M_lvlone[i, 14] <- M_lvlone[i, 8] * M_lvlone[i, 2]
    M_lvlone[i, 15] <- M_lvlone[i, 9] * M_lvlone[i, 2]
  }

 
}
$m6a
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 7] * beta[1] + M_lvlone[i, 8] * beta[2] +
                 M_lvlone[i, 9] * beta[3] + M_lvlone[i, 10] * beta[4] +
                 M_lvlone[i, 11] * beta[5] + M_lvlone[i, 12] * beta[6]

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[7] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[8]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[9] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[10]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[11] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[12]

    p_O1[i, 1] <- max(1e-10, min(1-1e-10, psum_O1[i, 1]))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 1]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 3] - psum_O1[i, 2]))
    p_O1[i, 4] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 1:3])))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:12) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] + exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] + exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
}
$m6b
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 7] * beta[1] + M_lvlone[i, 8] * beta[2] +
                 M_lvlone[i, 9] * beta[3] + M_lvlone[i, 10] * beta[4] +
                 M_lvlone[i, 11] * beta[5] + M_lvlone[i, 12] * beta[6] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[7]

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[8] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[9]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[10] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[11]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[12] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[13]

    p_O1[i, 1] <- max(1e-10, min(1-1e-10, psum_O1[i, 1]))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 1]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 3] - psum_O1[i, 2]))
    p_O1[i, 4] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 1:3])))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:13) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] + exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] + exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 13] <- M_lvlone[i, 6] * M_lvlone[i, 2]
  }

 
}
$m6c
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 7] * beta[1] + M_lvlone[i, 8] * beta[2] +
                 M_lvlone[i, 9] * beta[3] + M_lvlone[i, 10] * beta[4] +
                 M_lvlone[i, 11] * beta[5] + M_lvlone[i, 12] * beta[6]

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[7] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[8] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[9]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[10] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[11] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[12]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[13] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[14] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[15]

    p_O1[i, 1] <- max(1e-10, min(1-1e-10, psum_O1[i, 1]))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 1]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 3] - psum_O1[i, 2]))
    p_O1[i, 4] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 1:3])))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:15) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] + exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] + exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 13] <- M_lvlone[i, 6] * M_lvlone[i, 2]
  }

 
}
$m6d
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- M_lvlone[i, 7] * beta[1] + M_lvlone[i, 8] * beta[2] +
                 M_lvlone[i, 9] * beta[3] + M_lvlone[i, 10] * beta[4] +
                 M_lvlone[i, 11] * beta[5] + M_lvlone[i, 12] * beta[6] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[7] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[8] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[9]

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[10] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[11]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[12] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[13]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[14] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[15]

    p_O1[i, 1] <- max(1e-10, min(1-1e-10, psum_O1[i, 1]))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 1]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 3] - psum_O1[i, 2]))
    p_O1[i, 4] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 1:3])))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:15) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] + exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] + exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 13] <- M_lvlone[i, 7] * M_lvlone[i, 2]
    M_lvlone[i, 14] <- M_lvlone[i, 8] * M_lvlone[i, 2]
    M_lvlone[i, 15] <- M_lvlone[i, 9] * M_lvlone[i, 2]
  }

 
}
$m6e
model { 

 
  # Cumulative logit model for O1 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 1] ~ dcat(p_O1[i, 1:4])
    eta_O1[i] <- 0

    eta_O1_1[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[1] +
                 M_lvlone[i, 7] * beta[2] + M_lvlone[i, 8] * beta[3] +
                 M_lvlone[i, 9] * beta[4] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[5] +
                 M_lvlone[i, 10] * beta[6] + M_lvlone[i, 11] * beta[7] +
                 M_lvlone[i, 12] * beta[8] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[9] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[10] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[11]
    eta_O1_2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[12] +
                 M_lvlone[i, 7] * beta[13] + M_lvlone[i, 8] * beta[14] +
                 M_lvlone[i, 9] * beta[15] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[16] +
                 M_lvlone[i, 10] * beta[17] + M_lvlone[i, 11] * beta[18] +
                 M_lvlone[i, 12] * beta[19] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[20] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[21] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[22]
    eta_O1_3[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * beta[23] +
                 M_lvlone[i, 7] * beta[24] + M_lvlone[i, 8] * beta[25] +
                 M_lvlone[i, 9] * beta[26] +
                 (M_lvlone[i, 2] - spM_lvlone[2, 1])/spM_lvlone[2, 2] * beta[27] +
                 M_lvlone[i, 10] * beta[28] + M_lvlone[i, 11] * beta[29] +
                 M_lvlone[i, 12] * beta[30] +
                 (M_lvlone[i, 13] - spM_lvlone[13, 1])/spM_lvlone[13, 2] * beta[31] +
                 (M_lvlone[i, 14] - spM_lvlone[14, 1])/spM_lvlone[14, 2] * beta[32] +
                 (M_lvlone[i, 15] - spM_lvlone[15, 1])/spM_lvlone[15, 2] * beta[33]

    p_O1[i, 1] <- max(1e-10, min(1-1e-10, psum_O1[i, 1]))
    p_O1[i, 2] <- max(1e-10, min(1-1e-10, psum_O1[i, 2] - psum_O1[i, 1]))
    p_O1[i, 3] <- max(1e-10, min(1-1e-10, psum_O1[i, 3] - psum_O1[i, 2]))
    p_O1[i, 4] <- 1 - max(1e-10, min(1-1e-10, sum(p_O1[i, 1:3])))

    logit(psum_O1[i, 1]) <- gamma_O1[1] + eta_O1[i] + eta_O1_1[i]
    logit(psum_O1[i, 2]) <- gamma_O1[2] + eta_O1[i] + eta_O1_2[i]
    logit(psum_O1[i, 3]) <- gamma_O1[3] + eta_O1[i] + eta_O1_3[i]
  }

  # Priors for the model for O1
  for (k in 1:33) {
    beta[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O1[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O1[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O1[2] <- gamma_O1[1] + exp(delta_O1[1])
  gamma_O1[3] <- gamma_O1[2] + exp(delta_O1[2])



  # Normal model for C2 -----------------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 2] ~ dnorm(mu_C2[i], tau_C2)
    mu_C2[i] <- M_lvlone[i, 5] * alpha[1] +
                (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[2] +
                M_lvlone[i, 7] * alpha[3] + M_lvlone[i, 8] * alpha[4] +
                M_lvlone[i, 9] * alpha[5] + M_lvlone[i, 10] * alpha[6] +
                M_lvlone[i, 11] * alpha[7] + M_lvlone[i, 12] * alpha[8]
  }

  # Priors for the model for C2
  for (k in 1:8) {
    alpha[k] ~ dnorm(mu_reg_norm, tau_reg_norm)
  }
  tau_C2 ~ dgamma(shape_tau_norm, rate_tau_norm)
  sigma_C2 <- sqrt(1/tau_C2)



  # Multinomial logit model for M2 ------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 3] ~ dcat(p_M2[i, 1:4])

    p_M2[i, 1] <- min(1-1e-7, max(1e-7, phi_M2[i, 1] / sum(phi_M2[i, ])))
    p_M2[i, 2] <- min(1-1e-7, max(1e-7, phi_M2[i, 2] / sum(phi_M2[i, ])))
    p_M2[i, 3] <- min(1-1e-7, max(1e-7, phi_M2[i, 3] / sum(phi_M2[i, ])))
    p_M2[i, 4] <- min(1-1e-7, max(1e-7, phi_M2[i, 4] / sum(phi_M2[i, ])))

    log(phi_M2[i, 1]) <- 0
    log(phi_M2[i, 2]) <- M_lvlone[i, 5] * alpha[9] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[10] +
                         M_lvlone[i, 10] * alpha[11] + M_lvlone[i, 11] * alpha[12] +
                         M_lvlone[i, 12] * alpha[13]
    log(phi_M2[i, 3]) <- M_lvlone[i, 5] * alpha[14] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[15] +
                         M_lvlone[i, 10] * alpha[16] + M_lvlone[i, 11] * alpha[17] +
                         M_lvlone[i, 12] * alpha[18]
    log(phi_M2[i, 4]) <- M_lvlone[i, 5] * alpha[19] +
                         (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[20] +
                         M_lvlone[i, 10] * alpha[21] + M_lvlone[i, 11] * alpha[22] +
                         M_lvlone[i, 12] * alpha[23]

    M_lvlone[i, 7] <- ifelse(M_lvlone[i, 3] == 2, 1, 0)
    M_lvlone[i, 8] <- ifelse(M_lvlone[i, 3] == 3, 1, 0)
    M_lvlone[i, 9] <- ifelse(M_lvlone[i, 3] == 4, 1, 0)

  }

  # Priors for the model for M2
  for (k in 9:23) {
    alpha[k] ~ dnorm(mu_reg_multinomial, tau_reg_multinomial)
  }




  # Cumulative logit model for O2 -------------------------------------------------
  for (i in 1:100) {
    M_lvlone[i, 4] ~ dcat(p_O2[i, 1:4])
    eta_O2[i] <- (M_lvlone[i, 6] - spM_lvlone[6, 1])/spM_lvlone[6, 2] * alpha[24]

    p_O2[i, 1] <- 1 - max(1e-10, min(1-1e-10, sum(p_O2[i, 2:4])))
    p_O2[i, 2] <- max(1e-10, min(1-1e-10, psum_O2[i, 1] - psum_O2[i, 2]))
    p_O2[i, 3] <- max(1e-10, min(1-1e-10, psum_O2[i, 2] - psum_O2[i, 3]))
    p_O2[i, 4] <- max(1e-10, min(1-1e-10, psum_O2[i, 3]))

    logit(psum_O2[i, 1]) <- gamma_O2[1] + eta_O2[i]
    logit(psum_O2[i, 2]) <- gamma_O2[2] + eta_O2[i]
    logit(psum_O2[i, 3]) <- gamma_O2[3] + eta_O2[i]

    M_lvlone[i, 10] <- ifelse(M_lvlone[i, 4] == 2, 1, 0)
    M_lvlone[i, 11] <- ifelse(M_lvlone[i, 4] == 3, 1, 0)
    M_lvlone[i, 12] <- ifelse(M_lvlone[i, 4] == 4, 1, 0)
  }

  # Priors for the model for O2
  for (k in 24:24) {
    alpha[k] ~ dnorm(mu_reg_ordinal, tau_reg_ordinal)
  }

  delta_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  delta_O2[2] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)

  gamma_O2[1] ~ dnorm(mu_delta_ordinal, tau_delta_ordinal)
  gamma_O2[2] <- gamma_O2[1] - exp(delta_O2[1])
  gamma_O2[3] <- gamma_O2[2] - exp(delta_O2[2]) 
 
  # Re-calculate interaction terms
  for (i in 1:100) {
    M_lvlone[i, 13] <- M_lvlone[i, 7] * M_lvlone[i, 2]
    M_lvlone[i, 14] <- M_lvlone[i, 8] * M_lvlone[i, 2]
    M_lvlone[i, 15] <- M_lvlone[i, 9] * M_lvlone[i, 2]
  }

 
}
