疑问,为什么我载入初始值以后总是说,precision of nomallyy y[10] must be positive,试过很多初始值都是这样,自己生成的也是,不明白,求指教
model{
for(t in 4:T){y[t]~dnorm(m[t],p[t])
#LL[t]<-0.5*log(6.28)- 0.5*log(h[t])-0.5*pow(y[t]-m[t],2)/h[t]
}
A[1] <- 0
B[1] <- 0
F[1]<-0
A[2] <- 0
B[2] <- 0
F[2]<-0
A[3] <- 0
B[3] <- 0
F[3]<-0
m[1] <- 0
m[2]<-0
m[3]<-1
p[1]<-1
p[2]<-1
p[3]<-1
h[1]<-1/p[1]
h[2]<-1/p[2]
h[3]<-1/p[3]
for (t in 4:T){
h[t]<-lambda[1]+lambda[2]*pow(y[t-1]-m[t-1],2)+lambda[3]*pow(h[t-1],2)
p[t] <- 1/h[t]
m[t]<-A[t]+F[t]*B[t]+(y[t]-A[t]-F[t]*B[t])
A[t]<-alpha[1]+omega[1]*y[t-1]+omega[2]*y[t-2]
B[t]<-alpha[2]+beta[1]*y[t-1]+beta[2]*y[t-2]+beta[3]*y[t-3]
F[t]<-pow((1+exp(-700*step(y[t-1]-c))),-1)}
#prior
c~dunif(7.56,7.94)
alpha[1]~dnorm(0,0.001)
alpha[2]~dnorm(0,0.001)
omega[1] ~dnorm(0,0.001)
omega[2] ~dnorm(0,0.001)
beta[1] ~dnorm(0,0.001)
beta[2] ~dnorm(0,0.001)
beta[3] ~dnorm(0,0.001)
lambda[1] ~dunif(0.1,1)
lambda[2] ~dunif(0.1,1)
lambda[3] ~dunif(0.1,1)
}
DATA
list(T=39, y=c(8.1056, 8.0998, 8.092, 8.0845, 8.0804, 8.0702, 8.0608, 8.0415, 8.017, 8.0165, 8.0188, 7.9956, 7.9732, 7.9585, 7.9087, 7.8792, 7.8436, 7.8087, 7.7776, 7.7409, 7.7342, 7.7139, 7.6506, 7.6155, 7.5737, 7.5607, 7.5108, 7.4692, 7.3997, 7.3046, 7.1853, 7.1058, 7.019, 7.0002, 6.9472, 6.8591, 6.8388, 6.8345, 6.8183))
INITS
list(c=7.6, lambda=c(0.5,0.5,0.5), alpha=c(-10,10),omega=c(-10,5), beta=c(5,-5,0.1))
END