In the model specification, change the prior on the mu[j] as indicated in the exercise:

# Hyperpriors for mu and kappa:

## Four mu version:

#for ( j in 1:nCond ) {

# mu[j] ~ dbeta( a[j,mdlIdx] , b[j,mdlIdx] )

#}

# Two mu version:

for ( j in 1:2 ) {

mu[j] ~ dbeta( a[j,mdlIdx] , b[j,mdlIdx] )

}

mu[3] <- mu[2]

mu[4] <- mu[2]

From p. 315 of the book: "... when initializing chains in BUGS [and JAGS!], only stochastic variables have random chains and therefore only the stochastic variables are initialized. Any variable that has a value set by the assignment operator, “<-”, has a deterministic, not stochastic value. But sometimes, as in the present application, a vector has some stochastic components and some nonstochastic components. The way to initialize such vectors is to provide a specific value for the stochastic components, and an NA value to the nonstochastic components..."

Hence, in the initialization section, include the following code:

sqzData = .01+.98*dataList$nCorrOfSubj/dataList$nTrlOfSubj

mu = aggregate( sqzData , list(dataList$CondOfSubj) , "mean" )[,"x"]

sd = aggregate( sqzData , list(dataList$CondOfSubj) , "sd" )[,"x"]

kappa = mu*(1-mu)/sd^2 - 1

initsList = list( theta = sqzData ,

` # For four mu version: `

` # mu = mu ,`

` # For two mu version:`

` mu = c( mu[1] , mean( mu[2:4] ) , NA , NA ) , `

` mu0 = mean(mu) ,`

` kappa = kappa ,`

` mdlIdx = 1 )`

And, in run-the-chains section, uncomment the explicit initialization:

jagsModel = jags.model( "model.txt" , data=dataList , **inits=initsList ,**

` n.chains=nChains , n.adapt=adaptSteps )`

If you copy and paste from this page, it would be best not to directly paste into your R script because extraneous font formatting may bother the R interpreter. To avoid this problem, copy from here but then paste into a plain-text editor such as Notepad in Windows, which will strip away the font info. Then copy and paste from the plain-text editor into R.