Model error using run.jags

I am running the below code for a Multinomial Logistics Regression, but getting an error message "> mr <- run.jags(multinomial_model, n.chains = 2, data = reisby)
Error: No monitors were specified or found in the model block"

library(rjags)
library(runjags)
load("Reisby.Rdata")


reisby = as.data.frame(Reisby)

for (i in 1:length(reisby$hd)) {
  if (reisby$hd[i] >= 0 && reisby$hd[i] <= 6) {
    reisby$hd[i] = 1
  } else if (reisby$hd[i] > 6 && reisby$hd[i] <= 17) {
    reisby$hd[i] = 2
  } else if (reisby$hd[i] > 17 && reisby$hd[i] <= 24) {
    reisby$hd[i] = 3
  } else {
    reisby$hd[i] = 4
  }
}

reisby <- reisby[,-c(1)]
reisby$hd <- as.factor(reisby$hd)
reisby$female <- as.factor(reisby$female)
reisby$reactive_depression <- as.factor(reisby$reactive_depression)
reisby$week = as.factor(reisby$week + 1)

multinomial_model = " model{

for(i in 1:N){
hd[i] ~ dcat(prob[i,1:n_cat])

for(k in 1:n_cat){
log(phi[i,k]) <- intercept[k] +
week[weeks[i],k] +
lnimieffect[k]*lnimi[i]+
lndmieffect[k]*lndmi[i] +
femaleeffect[k]*female[i] +
reactive_depressioneffect[k]*reactive_depression[i]
prob[i,k] <- phi[i,k] / sum(phi[i,1:n_cat])
}
}

for(k in 1:n_cat){
intercept[k] ~ dnorm(0, 1E-6)
femaleeffect[k] ~ dnorm(0, 1E-6)
reactive_depressioneffect[k] ~ dnorm(0, 1E-6)

week[1,k] ~ dnorm(0, 1E-6)
week[2,k] ~ dnorm(0, 1E-6)
week[3,k] ~ dnorm(0, 1E-6)
week[4,k] ~ dnorm(0, 1E-6)

lnimieffect[k] ~ dnorm(0, 1E-6)
lndmieffect[k] ~ dnorm(0, 1E-6)
}

}
"

jags_reisby_data = list(
  hd = reisby$hd,
  N = nrow(reisby),
  n_cat = 4,
  lnimi = reisby$lnimi,
  lndmi = reisby$lndmi,
  female = reisby$female,
  reactive_depression = reisby$reactive_depression,
  weeks = reisby$week
)

model = jags.model(textConnection(multinomial_model),
                   data = jags_reisby_data,
                   n.chains = 6)

update(model, n.iter = 5E4)

th = 100 # Thinning interval

samples = coda.samples(
  model,
  variable.names = c(
    "intercept",
    "femaleeffect",
    "reactive_depressioneffect",
    "week",
    "lnimieffect",
    "lndmieffect"
  ),
  n.iter = 1E4
)

dic2 = dic.samples(model = model,
                   n.iter = 1E4,
                   thin = 60)

dic2

summary(samples)

plot(samples)

gelman.diag(samples)

as.data.frame(samples[[1]][, 11:93])

N <- nrow(reisby)
Categories <- length(levels(reisby$hd))

intercept <- list(chain1 = c(NA,-2, 2, 2), chain2 = c(NA, 2,-2, 2))

lnimieffect <- list(chain1 = c(NA, -2, 2, 2), chain2 = c(NA, 2, -2, 2))
lndmieffect <- list(chain1 = c(NA, -2, 2, 2), chain2 = c(NA, 2, -2, 2))

t1 <- matrix(ncol = Categories, nrow = 2)
t1[2, ] <- c(NA, 2, -2, 2)

t2 <- matrix(ncol = Categories, nrow = 2) 
t2[2, ] <- c(NA,-2, 2, 2)
femaleeffect <- list(chain1 = t1, chain2 = t2)
reactive_depressioneffect <-
  list(chain1 = t1, chain2 = t2) placeboeffect <-
  list(chain1 = t1, chain2 = t2)

mr <- run.jags(multinomial_model, n.chains = 2, data = reisby) 

summary(mr)

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.