为什么我的运行结果得到了can not sample from slice for rh[2]?
这是我的全部程序。
model{
for(t in 1:T){y[t]~dnorm(a[t],p[t])
LL[t]<--0.5*log(6.28)-0.5*log(h[t])-0.5*pow(y[t]-a[t],2)/h[t]
}
h1~dgamma(2,1000)
h[1]<-h1
p[1]<-1/h1
a1~dnorm(0,0.001)
a[1]<-a1
for(t in 2:T){h[t]<-lambda[1]+lambda[2]*step(y[t-1]-gamma)+(alpha[1]+alpha[2]*step(y[t-1]-gamma))*pow(y[t-1]-a[t-1],2)+(beta[1]+beta[2]*step(y[t-1]-gamma))*h[t-1]
a[t]<-(1-(rho[1]+rho[2]*step(y[t-1]-gamma)))*(c[1]+c[2]*step(y[t-1]-gamma))+(rho[1]+rho[2]*step(y[t-1]-gamma))*y[t-1]
p[t]<-1/h[t]}
#prior
gamma~dunif(32.64,42.92) # 6.4=quantile(y,probs=0.3),8.2=quantile(y,probs=0.7)
lambda[1]~dnorm(0,0.001)I(0,100)
lambda[2]~dnorm(0,0.001)I(-50,50)
alpha[1]~dnorm(0,0.001)I(0,1)
alpha[2]~dnorm(0,0.001)I(-0.5,0.5)
beta[1]~dnorm(0,0.001)I(0,1)
beta[2]~dnorm(0,0.001)I(-0.5,0.5)
c[1]~dnorm(0,0.001)
c[2]~dnorm(0,0.001)
rho[1]~dnorm(0,0.001)I(-1,1)
rho[2]~dnorm(0,0.001)I(-1,-1)
}
DATA
list(T=33,y=c(66,15.4,26.4,-4.3,23.8,40.4,40.5,80.9,23.2,23.5,39.4,
16.4,1.8,24.3,34.2,78.6,43.8,55,34.3,18.6,26.4,23.7,22.4,49.9,
48.5,63.2,54.5,39,43.9,42.7,47.5,91.3,54))
INITS
list(h1=1,a1=1,gamma=37,lambda=c(5,0),alpha=c(0.2,0),beta=c(0.2,0.1),
c=c(8,2),rho=c(0.2,0))
list(h1=1,a1=1,gamma=38,lambda=c(5,1),alpha=c(0.25,0),beta=c(0.3,0.1),
c=c(10,2),rho=c(0.25,0))