为什么我必须在JAGS中定义顶级参数,以及如何定义?

时间:2016-04-04 19:13:49

标签: r jags

根据r-jags的用户手册(编译部分):

  

在关系的右侧使用的任何节点,但不是   在任何关系的左侧定义,假定为a   常数节点。它的值必须在数据文件中提供。

但奇怪的是,许多概率图模型包含许多要推断的顶级参数。这就是BN的意思,不是吗?那么为什么我需要先定义顶级参数的值?当我想要实现像LDA这样的模型时,我该怎么办?LDA的主题分布先于a,而字分布beta未知?如果我说错了,请告诉我。

1 个答案:

答案 0 :(得分:4)

如果要对参数进行推理,那么根据定义,这不是顶级参数。如果你想推断某个参数的某些内容,那么你必须在它上面放一个先验,在这种情况下,先前的超参数是顶级参数。例如:

Count ~ dpois(lambda)
lambda <- 10

表示lambda是顶级参数,无法推断。

Count ~ dpois(lambda)
lambda ~ dgamma(0.001, 0.001)

意味着推断出lambda,而gamma先验的超参数是顶级参数。要更明确地看到这一点,请注意这种语法是等效的:

Count ~ dpois(lambda)
lambda ~ dgamma(shape, rate)
shape <- 0.001
rate <- 0.001

如果您愿意,也可以在数据中指定形状和速率参数,但这有点不寻常。

为这些参数选择合理的先验分布并不总是直截了当,但它是任何贝叶斯分析的组成部分。不要只是假设具有较大差异的先验信息在没有考虑和/或测试的情况下提供最少的信息。

马特