我正在运行带有模拟数据的分层贝叶斯模型,以查看贝叶斯模型是否可以检索我为生成模拟数据而设置的参数值。当我在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日开始出现问题,即使它们基于相同的表达式。
任何建议将不胜感激!