R OpenBugs返回

R OpenBugs返回,r,time-series,openbugs,R,Time Series,Openbugs,我正在试着编写Makridakis和Hyndman书中的示例。 但在某些时候,我们使用了一个循环项,我不知道如何解决它 当我尝试>>>级别[i]-级别[i-1]时,模型停止运行。 事实上,当我把“帐篷”和“水平”联系起来时,它就不起作用了。我不理解为什么,因为我可以将“level”和“tent”联系起来,但不能反过来 library(R2OpenBUGS) Dados <- c(362, 385, 432, 341, 382, 409, 498, 387,

我正在试着编写Makridakis和Hyndman书中的示例。 但在某些时候,我们使用了一个循环项,我不知道如何解决它

当我尝试>>>级别[i]-级别[i-1]时,模型停止运行。 事实上,当我把“帐篷”和“水平”联系起来时,它就不起作用了。我不理解为什么,因为我可以将“level”和“tent”联系起来,但不能反过来

library(R2OpenBUGS)

Dados <- c(362, 385, 432, 341, 
             382, 409, 498, 387,
             473, 513, 582, 474,
             544, 582, 681, 557,
             628, 707, 773, 592,
             627, 725, 854, 661)

anos <- c(2015,2015,2015,2015,
          2016,2016,2016,2016,
          2017,2017,2017,2017,
          2018,2018,2018,2018,
          2019,2019,2019,2019,
          2020,2020,2020,2020)

meses <- c(1,2,3,4,
           1,2,3,4,
           1,2,3,4,
           1,2,3,4,
           1,2,3,4)

N       <- 24

s <- 4

data        <-  list(N = N, dados = Dados, meses = meses, anos = anos, s=s)

model1      <-  function()
{   
  for (i in 1:N) 
  {
    y[i] <- Consumo[i]
    y[i] ~ dnorm(mean[i],tau)
  }
  
  level[1] <- y[1]
  
  tent[1] <- y[1]

  mean[1] <- y[1]
    
  for (i in 2:N) 
  {
    level[i] <- (beta0*y[i])+((1-beta0)*(mean[i-1]+tent[i-1]))
    tent[i] <- (beta1*(level[i]-level[i-1]))+((1-beta1)*tent[i-1])
    mean[i] <- level[i]+tent[i]
   
  }
   
  beta0 ~ dnorm(3,20)
  beta1 ~ dnorm(3,20)
  tau ~ dgamma(1,1)
}
库(r2openbug)
护墙板