Skip to content

BUGS/JAGS: prior for a 2D random effect

1 message · Andrew Digby

#
I'm writing a hierarchical BUGS/JAGS model with two 'for' loops, and want to include nested random effects, a1 & a2 (nested in a1). But I can't work out how to specify the prior for the nested random effect. This doesn't work:

model{
	for (i in 1:N){
		for (j in 1:M){
			...
			eta[j,i] <- alpha + b[1]*Var1[j,i] + ... + a1[i] + a2[j,i]
  		}
	}

	for (i in 1:N){a1[i] ~ dnorm(0.0, tau1}    # Prior for random effect a1
       # This next part, specifying the prior for random effect a2, is wrong, but what should it be:?
	for (i in 1:N){
		for (j in 1:M){
			a2[j, i] ~ dnorm(0.0, tau2}
		}
	}
}

inits <- function(){
	list ( ...
		a1 = rnorm(N, 0, 1),
		a2 = matrix(rnorm(N*M, 0, 1), nrow=M, ncol=N),
		...
	)
}


Apologies for the lack of reproducible example, but this is just a syntax issue. How do I specify the prior for the nested random effect a2? I can't find the answer to this anywhere. I know I can reduce this to just one 'for' loop, but don't want to for other reasons (I later want to introduce an AR1 structure within one loop).

Thanks very much,

Andrew