【问题标题】:rjags model negative binomial likelihood and gamma priorrjags 模型负二项似然和伽马先验
【发布时间】:2019-11-12 18:32:26
【问题描述】:

我读入了我的数据。我制作模型字符串。我把它交给JAGS。我得到“节点 y[1] 中的错误 - 节点与父节点不一致”。

Y=read.table("data.txt",header=T)
Y=Y$Y


model_string <- "model{

# Likelihood:
for( i in 1 : N ) {
y[i] ~ dnegbin( l , r )
}

# Prior:
r ~ dgamma(1,1)
l ~ dgamma(.1,.1)
}"

model <- jags.model(textConnection(model_string), 
                    data = list(y=Y,N=200))

首先,我不知道我的模型是否正确。我什至找不到 JAGS 的基本文档。我真的很惭愧承认这一点,因为这应该像互联网搜索一样简单,但我找不到任何文件告诉我 1)如何设置 JAGS 模型或 2)什么样的功能/分布/参数是在 JAGS 中可用。我之所以能走到这一步,是因为我发现有人在做类似的模型。如果有人知道 JAGS wiki 或文档,那就太好了。

编辑:如果有人能告诉我 dnegbin 的参数是什么,那将是一个巨大的帮助。当我在dnegbin(l,r) 中插入lr 的随机数时,它会“工作”,因为它会为lr 绘制数字,但我不知道这是否意味着什么。

【问题讨论】:

  • 你确定你的y 是非负整数吗?
  • 另外我觉得dnegbin的第一个参数是成功参数,所以应该在01之间,然后Gamma先验就不合适了。
  • @StéphaneLaurent 非负是的,但有些是 0。虽然伽马先验不是共轭的,但它应该仍然有效。我应该可以让 JAGS 做 MH 以从中吸取教训,但我不知道如何指定 MH。
  • 伽玛分布取值 > 1。这就是问题所在。您必须分配一个先验分布,其值介于 0 和 1 之间。
  • @StéphaneLaurent 不,现在是图纸编号。我仍然不知道它在做什么。

标签: r jags rjags


【解决方案1】:

您可以在JAGS user manual 中找到有关dnegbin 的一些信息。

dnegbin 的第一个参数必须介于 0 和 1 之间。您可以指定例如均匀分布:

library(rjags)

model_string <- "model{

# Likelihood:
for( i in 1 : N ) {
y[i] ~ dnegbin( l , r )
}

# Prior:
r ~ dgamma(1,1)
l ~ dunif(0,1)
}"

y <- rpois(200, 10)
model <- jags.model(textConnection(model_string), 
                    data = list(y=y, N=length(y)))

您还必须确保y 的值是非负整数

【讨论】:

    猜你喜欢
    • 2021-04-21
    • 2017-06-20
    • 1970-01-01
    • 2014-10-24
    • 2012-11-20
    • 2021-07-12
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多