错误消息切片器卡在无限密度的值上

时间:2019-06-06 13:28:56

标签: bayesian jags winbugs metafor r2jags

我在处理贝叶斯方法方面仍然很环保。 在对真实数据产生随机影响的情况下运行贝叶斯分析,遇到以下错误“闪烁卡在无限密度的值上”,我尝试更改precision参数的起始值(基于我在stackoverflow上发现的建议) ,以及参数的其他起始值,但这并不能解决问题。这是我的代码的一部分

    cat("model
    {
    for( i in 1 : N) {
    D[i] ~ dpois(r[i])
    log(r[i]) <- mu[i] + log(pt[i])
    mu[i] ~ dnorm(theta,precision)
    }
    theta ~ dnorm(0.0,1.0E-6)
    ExpTheta <- exp(theta)
    tau1 ~ dgamma(0.001,0.001)
    precision <- 1/(tau1*tau1)
    }", file="myfile.txt")

我观察到以下解决了问题:

  1. 以(theta〜dnorm(0,1.0E-5)T(0,0.99)的形式截断正常先验

在我的情况下,上述解决方案的问题在于我的估算值比平时要多。其次,我不太了解截断法线如何适合我的解决方案。有人可以让我深入了解截断法线及其对使用该法产生的结果的解释的影响吗?

  1. 第二个选择是使用很少的迭代次数。我观察到迭代次数少,模型停止抛出错误。

与此相关的问题是,不怀疑会聚。

  1. 第三个可行的选择是我必须先将gamma从gamma(0.001,0.001)更改为gamma(1,1)。我不确定从gamma(0.001,0.001)到gamma(1,1)会如何影响我的解释,但获得的结果似乎是合理的。

我希望您能对上述修正的优缺点在建模过程及其对推理的影响方面发表一些评论。

其他信息,D是观察到的计数,pt是人事时间(偏移)。

0 个答案:

没有答案