这是一本书里的例子,原例是quarterly的数据,我改成monthly的,请帮忙看看这个程序哪有问题,想要将数据分解为trend +season, 但是运行结果trend 仍然含有很强的季节性,和原始数据的表现差不多。
model
model {for (t in 1:N) { y[t] ~ dnorm(mu.y[t],tau[1])
y.new[t] ~ dnorm(mu.y[t],tau[1])
mu.y[t] <- gamma[t] + s[t]}
for (t in 2:N){ gamma[t] ~ dnorm(mu.gam[t],tau[2])
mu.gam[t] <- gamma[t-1]+delta[t-1]}
for (t in 3:N) { delta[t-1] ~ dnorm(delta[t-2],tau[3])}
delta[1] <- delta1
delta1 ~ dnorm(1,0.001)
gamma[1] <- gamma1
gamma1 ~ dnorm(1,0.001)
# seasonals
for (t in 12:N) { s[t] ~ dnorm(mu.s[t],tau[4])
mu.s[t] <- -s[t-1]-s[t-2]-s[t-3]-s[t-4]-s[t-5]-s[t-6]-s[t-7]-s[t-8]-s[t-9]-s[t-10]-s[t-11]}
# initial seasonal conditions
for (j in 1:11) {s[j] <- s.init[j]; s.init[j] ~ dnorm(1,0.001)}
# precisions
tau[1] ~ dgamma(1,0.001)
tau[2] <- tau[1]/lambda
lambda ~ dunif(0,1)
for (j in 3:4) {tau[j] ~ dgamma(1,0.001)
}
}
# Inits
list(tau=c(1,NA,1,1),delta1=0,s.init=c(0,0,0,0,0,0,0,0,0,0,0),gamma1=0)
#data
list(y=c(1.12,1.18,1.32,1.29,1.21,1.35,1.48,1.48,1.36,1.19,1.04,1.18,1.15,1.26,.............................4.32),N=144)


雷达卡



京公网安备 11010802022788号







