我很难弄清楚这个简单的Rjags模型中的错误应该在哪里:
print("\(C.init().meth)")
主要思想应该是变量 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)
是一个Gamma,两个Gamma随机变量的总和,具有相同的速率参数。
我已经确定参数的负值不能通过在两个比例参数上分配Gamma先验,所以我不明白为什么Rjags在这里抱怨。
我想推断两个参数dt
,ax
(其次是ay
)。
感谢您提供的所有帮助! 最好的,Emanuele
答案 0 :(得分:4)
伽马分布严格为正,因此不能为零(或负数)。因此,您的数据的前5个观察结果与您的模型不一致,因此出现错误。
可能的解决方案是将其建模为审查,质量为零的混合模型,或者可能只是简单地为数据添加常量,但不知道数据代表什么,就不可能说哪个最好。