首先先祝大家新春快乐如意
现在学生從網上學習openbugs中的SVCJ並亦有修改程式令其所需.但一直出现错误讯息—(expectecd variable name )in “load data”...(variable n is not defined) in “compile......
但我已看了许多遍仍无察觉到是那的环节出错..是否请老師與各位大大帮学生看看是何地方出错..
感谢帮忙与指导....学生不胜感激..
程式如下
model;
{
mu ~ dnorm(1,0.04)
for( i in 2 : n ) {
v ~ dt(vmean,ivd)I(0,1)
}
kt ~ dnorm( 0.0, 1.0)
k ~ dnorm( 0.0, 1.0)
# theta <- kt / k
for( i in 2 : n ) {
ksy ~ dt(ksymean,tauy)
}
for( i in 2 : n ) {
ksv ~ dexp(muv)
}
rhoj ~ dnorm( 0.0,4)
muv ~ dgamma(20,10)
for( i in 2 : n ) {
j ~ dbern(lambda)
}
lambda ~ dbeta(2,40)
#ev ~ dnorm( 0.0, 1.0)
#ey ~ dnorm( 0.0, 1.0)
#e ~ dnorm( 0.0,1.0E-6)
sigy2 <- 1 / tauy
tauy ~ dgamma( 5.0,20)
muy ~ dnorm( 0.0,0.01)
for( i in 2 : n ) {
#rmean <- mu + ksymean * j
rmean <- mu + ksy * j
}
tauv ~ dgamma( 2.5, 0.1)
sigv2 <- 1 / tauv
for( i in 2 : n ) {
#vmean <- v[i - 1] +( kt-k* v[i - 1]) + 1/muv * j + rho * (v - v[i - 1] - mu - ksymean * j)
vmean <- v[i - 1] +( kt-k* v[i - 1]) +ksv * j +sqrt(sigv2)* rho * (v - v[i - 1] - mu - ksy * j)
}
for( i in 2 : n ) {
#ivd <- 1 / (rho*rho*sigy2*j+(1-rho*rho)*sigv2*j+v[i - 1]+1/pow(muv,2)*j)
ivd <- tauv/((1-rho*rho)*v[i-1])
}
for( i in 2 : n ) {
#ird <- 1 / (sigy2*j+v[i - 1])
ird <- 1/v[i-1]
}
for( i in 2 : n ) {
Ymean<-rho/tau*exp(0.5*theta)*(theta[i+1]+sqrt(sigv2)* rho * (y - y[i - 1] - mu - ksy * j)
r <- y-y[i-1]
r ~ dt(rmean,ird)
}
rho ~ dunif(-1,1)
for( i in 2 : n ) {
ksymean <- muy + rho j* ksv
}
v[1] <- 1
ksv[1] <- 0.0
ksy[1] <- 0.0
theta0 ~ dnorm(mu,isigma2);
theta[1] ~ dnorm(thetamean[1],itau2);
}
#data
list (n=180)
v[]
-0.560.08-0.95-0.60.261.071.48-3.881.19-0.94-0.20.781.74-1.72.16-0.35-0.46-0.21-0.6-0.4-0.032.171.32-1.78-1.721.69-2.560.370.6-1.340.021.96-0.55-0.18-1.31.040.360.410.20.120.35-0.230.09-1.171.34-0.61.24-0.610.71-3.381.45-0.01-0.640.070.250.35-0.971.49-2.11-0.5403.1-1.410.2-0.470.350.32-0.69-0.49-0.931.141.320.33-2.611.340.080.42-0.87-0.430.40.360.17-0.420.420.060.630.260.05-0.030.821.6-0.790.24-0.4-0.860.09-1.131.450.36-0.660.660.080.021.17-0.41-0.42-0.24-0.290.46-1.69-0.570.820.360.14-0.94-1.35-0.670.041.430.43-0.321.4-0.9-0.17-0.70.15-0.461.941.52.22-0.53-1.47-0.390.920.08-0.06-0.171.260.84-1.13-1.58-0.71-0.45-0.670.21-2.811.18-0.310.37-1.89-0.351.51-0.06-1.010.271.370.512.08-1.080.08-0.580.430.12-1.780.760.270.96-0.28-0.140.230.07-0.090.350.29-0.620.010.03-0.11-0.230.99
END
#init
list(mu=1,k=1,kt=1,tauv=1,rho=1,lambda=1,muy=1,tauy=1,muv=1,rhoj=1, theta=1 )
ksy=c(0,0,0,0,0,0,0,0,0,0,0,0
),
ksv=c(0,0,0,0,0,0,0,0,0,0,0,0
),
J=c(0,0,0,0,0,0,0,0,0,0,0,0
),
v = c