你的程序多处有小错(拼写错误,多个大括号,少个大挂号等等),我尽力改了,现在能运行(当然我没读你的程序,所以不知结果是否符合你的需要)。凡是改过的地方都加了注释,见后面多出有"#"的地方。
model{
#observation model
for(j in 1:J){
for(t in 1:T){
y[j,t]~dnorm(mu[j,t],tauy[j])
mu[j,t]<-beta0[j,t]+beta1[j,t]*I[j,t]+beta2[j,t]*L[j,t]+beta3[j,t]*IL[j,t]
}
}
#state model
for(j in 1:J){
for(t in 2:T){
beta0[j,t]~dnorm(mu.0[j,t],tau0[j])
beta1[j,t]~dnorm(mu.1[j,t],tau1[j])
beta2[j,t]~dnorm(mu.2[j,t],tau2[j])
beta3[j,t]~dnorm(mu.3[j,t],tau3[j])
mu.0[j,t]<-beta0[j,t-1]+gam0[j]*E[j,t]+gam4[j]*E[j,t-1]
mu.1[j,t]<-beta1[j,t-1]+gam1[j]*E[j,t]+gam5[j]*E[j,t-1]
mu.2[j,t]<-beta2[j,t-1]+gam2[j]*E[j,t]+gam6[j]*E[j,t-1]
mu.3[j,t]<-beta3[j,t-1]+gam3[j]*E[j,t]+gam7[j]*E[j,t-1]
}
}
#measurement equation model
for(t in 1:T){
for(j in 1:J){
for(i in 1:N){
x[j,t,i]~dnorm(mu.x[j,t,i],psi[j,i])
ephat[j,t,i]<-x[j,t,i]-mu.x[j,t,i]
}
mu.x[j,t,1]<-lamda1[j]*E[j,t]
mu.x[j,t,2]<-lamda2[j]*E[j,t]
mu.x[j,t,3]<-lamda3[j]*E[j,t]
E[j,t]~dnorm(0,1)
}
}
# } # delete this one
#priors on observation model
for(j in 1:J){
beta0[j,1]~dnorm(0.0,1.0)
beta1[j,1]~dnorm(0.0,1.0)
beta2[j,1]~dnorm(0.0,1.0)
beta3[j,1]~dnorm(0.0,1.0)
gam0[j]~dnorm(0.0,1.0)
gam1[j]~dnorm(0.0,1.0)
gam2[j]~dnorm(0.0,1.0)
gam3[j]~dnorm(0.0,1.0)
gam4[j]~dnorm(0.0,1.0)
gam5[j]~dnorm(0.0,1.0)
gam6[j]~dnorm(0.0,1.0)
gam7[j]~dnorm(0.0,1.0)
lamda1[j]~dnorm(0.0,1.0)
lamda2[j]~dnorm(0.0,1.0)
lamda3[j]~dnorm(0.0,1.0)
tauy[j]~dgamma(1.0,1.0) #change fr tau.y to tauy
tau0[j]~dgamma(1.0,1.0)
tau1[j]~dgamma(1.0,1.0)
tau2[j]~dgamma(1.0,1.0)
tau3[j]~dgamma(1.0,1.0)
}
for(j in 1:J){
for(i in 1:N){
psi[j,i]~dgamma(1.0,1.0)
sgm[j,i]<-1/psi[j,i]
}
} # add this one
}#end of model
Data
list(T=9,N=3,J=2,
x=structure(
.Data=c(0.23,0.65,0.76,0.19,0.59,0.70,0.42,0.68,0.64,0.39,0.79,0.59,
0.23,0.65,0.76,0.19,0.59,0.70,0.42,0.68,0.64,0.39,0.79,0.59,
0.41,0.81,0.61,0.49,0.80,0.58,0.38,0.74,0.51,0.40,0.79,0.49,
0.36,0.83,0.52,0.41,0.81,0.61,0.49,0.80,0.58,0.38,0.74,0.51,
0.40,0.79,0.49,0.36,0.83,0.52),
.Dim=c(2,9,3)), # change from .Dim=c(9,3,2)
y=structure( # correct spelling error, i.e. change from structyre(
.Data=c(150,136,143,154,135,148,128,149,146,150,136,143,154,135,148,128,149,146),
.Dim=c(2,9)), # change from .Dim=c(9,2)
I=structure(
.Data=c(0.38,0.62,0.56,0.39,0.61,0.4,0.53,0.42,0.46,0.38,0.62,0.56,0.39,0.61,0.4,0.53,0.42,0.46),
.Dim=c(2,9)), # change from .Dim=c(9,2)
L=structure(
.Data=c(85,70,80,88,68,82,63,84,86,85,70,80,88,68,82,63,84,86),
.Dim=c(2,9)), # change from .Dim=c(9,2)
IL=structure(
.Data=c(32.3,43.4,44.8,34.32,41.48,32.8,33.39,35.28,39.56,32.3,43.4,44.8,34.32,41.48,32.8,33.39,35.28,39.56),
.Dim=c(2,9))) # change from .Dim=c(9,2)