JAGS中非随机变量的“无效父值”错误

时间:2017-10-18 20:46:51

标签: r bayesian jags rjags

我正在运行带有模拟数据的分层贝叶斯模型,以查看贝叶斯模型是否可以检索我为生成模拟数据而设置的参数值。当我在JAGS(使用rjags)中运行贝叶斯模型时,它为我的一个名为 comp.p 的参数返回了“无效的父值”错误。但是,由于我的模型中的参数 comp.p 不是一个随机变量,只是由一个确定性表达式定义,我只是不知道怎么可能有非随机变量的“无效父值”错误。

因此,我只是想知道是否有人遇到过同样的问题,或者可能知道在什么情况下可能会发生这种情况。

这是我的JAGS代码的一部分。由于我的代码很长,我只提出了我认为它相关的部分,但如果需要这些信息,我很乐意用更多代码进行更新。

model {

##Priors setting here###

 for (k in 1:year){

##Long process model here###

   for(j in 1:ngrids) {
      N[j,1,k+1]~dpois(u2[j,1,k]+u4_frag_post[j,1,k])
      N[j,2,k+1]~dpois(u2[j,2,k]+u4_frag_post[j,2,k]) 
      N[j,3,k+1]~dpois(u2[j,3,k]+f.f[j,k]*trans.F.4*u2[j,4,k]) 
      N[j,4,k+1]~dpois(u2[j,4,k])

      NTotal[j,k+1]<-N[j,1,k+1]+N[j,2,k+1]+N[j,3,k+1]+N[j,4,k+1]     
    }
  }

##End of process model######

#### Data model ############

  for (k in 2:year){
    for (i in 1:n.comp) {
      comp.p[i,1,k]<-N[comp.ind[i],1,k]/NTotal[comp.ind[i],k]  
      comp.p[i,2,k]<-N[comp.ind[i],2,k]/NTotal[comp.ind[i],k]
      comp.p[i,3,k]<-N[comp.ind[i],3,k]/NTotal[comp.ind[i],k]
      comp.p[i,4,k]<-N[comp.ind[i],4,k]/NTotal[comp.ind[i],k]

      y.comp[i,2:5,k]~dmulti(comp.p[i,1:4,k],y.comp[i,6,k])   
    }
  }
##End of data model######
}

其中所有参数都是非负实数值

我获得的错误信息是:

Error in node comp.p[4,4,8]
Invalid parent values

对我来说看起来很奇怪,因为这意味着它对前7个循环运行正常但在8日开始出现问题,即使它们基于相同的表达式。

任何建议将不胜感激!

0 个答案:

没有答案