使用锯齿的贝叶斯空间状态模型

时间:2019-12-17 23:34:13

标签: r jags

我正在尝试编写用于种群动态的贝叶斯空间状态模型,因此对这种模型没有经验,因此我犯了很多错误,我收到了以下错误消息“节点o [1]中的错误”无效的父值”。在网络上搜索时,我了解到这可能是因为先验无效,但是我已经测试了多个先验值,并且根据分布定义,它们似乎还可以。在伽马分布中,我已经使用rate参数和scale参数进行了测试。我不知道如何运行此代码。因为这个问题,我为自己辩解。这是代码:

o<-c(22.77619, 19.07782, 22.08817, 16.32168, 32.57081, 10.48027, 15.93440, 27.54557, 33.39933)
n<-9
cat(file="pop.din","
model {
  t[1] <- n0
  o[1] ~ dlnorm(t[1],tau.obs)
  for (i in 2:9) {
    v[i] <- t[i-1]+r*t[i-1]*(1-t[i-1]/K) #valor esperado
    t[i] ~ dlnorm(v[i],tau.proc) #t valor verdadero
    o[i] ~ dlnorm(t[i],tau.obs)
  }
  r ~ dunif(0,1)
  K ~ dgamma(0.5,5)
  tau.obs ~ dgamma(1,5)
  tau.proc ~ dgamma(1,5)
  n0 ~ dgamma(1,10)
}")

pop.din.data<-c("o")

#initila values for the parameters stored as a list
inits<-function()list(r=runif(0,1),k=runif(0,1),tau.obs=rgamma(1,0,1),tau.proc=rgamma(1,0,1),n0=rgamma(1,0,1))

params<- c("K","r","n0","tau.obs","tau.proc")

ni <- 10000
nt <- 1
nb <- 5000
nc <- 3
library(jagsUI)
j.model   <- jags (model.file = "pop.din", data = pop.din.data,parameters.to.save = "params",
                             inits = inits,n.chains = 3,n.iter = 10000)

亲切的问候 安托拉

0 个答案:

没有答案