Rjags错误:节点与父节点不一致



我有相当困难的时间在找出错误应该在这个简单的Rjags模型:

  dt=
[1] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.304157e-06 1.014568e-05
  [8] 1.798720e-05 2.582872e-05 3.367025e-05 4.151177e-05 4.935329e-05 5.719481e-05 6.503634e-05
 [15] 7.287786e-05 8.071938e-05 8.856090e-05 9.640242e-05 1.042439e-04 1.120855e-04 1.200225e-04
 [22] 1.274917e-04 1.332419e-04 1.426773e-04 1.682728e-04 2.018543e-04 2.302676e-04 2.810248e-04
 [29] 3.408895e-04 3.942806e-04 4.818033e-04 5.682188e-04 6.298504e-04 7.320266e-04 9.604787e-04
 [36] 1.315336e-03 1.695445e-03 1.945434e-03 2.047065e-03 2.192386e-03 2.404184e-03 2.629989e-03
 [43] 2.931693e-03 3.414607e-03 4.085636e-03 5.009995e-03 5.897174e-03 6.532098e-03 7.205807e-03
 [50] 8.125645e-03 9.097041e-03 9.857559e-03 1.021277e-02 1.026859e-02 1.053671e-02 1.125948e-02
 [57] 1.207536e-02 1.250217e-02 1.297049e-02 1.372405e-02 1.463063e-02 1.552144e-02 1.604347e-02
 [64] 1.628257e-02 1.701820e-02 1.843134e-02 2.045894e-02 2.294199e-02 2.517307e-02 2.666305e-02
 [71] 2.762321e-02 2.890740e-02 3.095278e-02 3.290344e-02 3.429784e-02 3.502680e-02 3.525143e-02
 [78] 3.534536e-02 3.508330e-02 3.431497e-02 3.302332e-02 3.136818e-02 2.979437e-02 2.850674e-02
 [85] 2.713331e-02 2.539821e-02 2.301579e-02 2.002319e-02 1.702893e-02 1.447840e-02 1.217091e-02
 [92] 1.006765e-02 8.119336e-03 6.326128e-03 4.835775e-03 3.611105e-03 2.514688e-03 1.618690e-03
 [99] 1.006864e-03 6.681004e-04 4.693963e-04 3.256632e-04
data = list('dt')
library(rjags);library(foreign);library(coda)
cat('model{ 
for(k in 1:102){ dt[k] ~ dgamma(a, 0.5)}
a=ax+ay
X  ~ dgamma(ax, 0.5)
Y  ~ dgamma(ay, 0.5) 
ax ~ dgamma(3, 1/10)
ay ~ dgamma(3, 1/10)
    }',
file='model1.bug')
inits1 = list('ax'=15, 'ay'=15)    
jags_mod = jags.model('model1.bug', data=data, inits=inits1, n.chains=1, n.adapt=2000)    
update(jags_mod, n.iter=2000)
posts=coda.samples(model=jags_mod, variable.names=c('ax','ay','a', 'X', 'Y'), n.iter=1000000, thin=2000)

主要思想应该是变量dt是一个Gamma,两个具有相同速率参数的Gamma随机变量的和。我已经确保参数不能有负值,通过在两个尺度参数上分配Gamma先验,所以我不明白为什么Rjags在这里抱怨。我想对两个参数ax, ay(其次是a)进行推断。

感谢您提供的所有帮助!最好的,埃

伽马分布严格为正,因此不可能为零(或负)。因此,数据的前5次观察结果与模型不一致,因此出现了错误。

可能的解决方案是将其建模为审查,质量为零的混合模型,或者可能只是在数据中添加一个常数,但不知道数据代表什么,就不可能说哪个是最好的。

最新更新