【问题标题】:Why do I have to define the top-level parameter in JAGS, and how?为什么我必须在 JAGS 中定义顶级参数,如何定义?
【发布时间】:2016-07-24 11:40:36
【问题描述】:

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

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

但很奇怪,许多概率图模型包含许多要推断的顶级参数。这就是国阵的意思,不是吗?那么为什么要先定义顶层参数的值呢?当我想实现像LDA这样的模型时,我应该怎么做,它的主题分布在a和词分布beta是未知的?如果我说错了,请告诉我。

【问题讨论】:

    标签: r jags


    【解决方案1】:

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

    Count ~ dpois(lambda)
    lambda <- 10
    

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

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

    表示 lambda 是推断出来的,gamma prior 的超参数是顶层参数。要更清楚地看到这一点,请注意以下语法是等效的:

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

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

    为这些参数选择合理的先验分布并不总是简单的,但它是任何贝叶斯分析的一个组成部分。不要在没有考虑和/或测试的情况下假设具有大方差的先验信息很少。

    马特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多