1

我曾经使用 C 编写我的 MCMC。但我想尝试一下 PyMC。

假设 X_n 是其动力学遵循马尔可夫链的基础状态,而 Y_n 是观察到的数据。尤其是,

Y_n 具有泊松分布,其均值取决于 X_n 和多维未知参数 theta X_n | X_{n-1} 的分布取决于 theta

我应该如何使用 PyMC 描述这个模型?

另一个问题:我可以找到 theta 但不是 X_n 的共轭先验。是否可以指定使用共轭先验更新哪些后验以及使用 MCMC 更新哪些后验?

4

1 回答 1

3

这是 PyMC wiki 上 PyMC 中状态空间模型的示例。它基本上涉及填充列表并允许 PyMC 将其视为 PyMC 节点的容器。

至于问题的第二部分,您当然可以提前计算一些共轭后验并将它们放入模型中。例如,如果您观察到二项式数据x=4n=10您可以插入一个 Beta 节点p = Beta('p', 5, 7)来表示该后验(就模型而言,它实际上只是一个先验,但它是给定数据的后验x)。然后 PyMC 会在每次迭代中为这个后验抽取一个样本,以便在模型中需要它的任何地方使用。

于 2013-12-08T21:59:57.423 回答