PyMC:我如何描述状态空间模型?

时间:2013-12-08 20:56:45

标签: hidden-markov-models pymc mcmc

我曾经用C编码我的MCMC。但是我想试试PyMC。

假设X_n是基础状态,其动态遵循马尔可夫链,Y_n是观测数据。特别是,

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

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

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

1 个答案:

答案 0 :(得分:3)

Pylex wiki上的

Here is an example of a state-space model in PyMC。它主要涉及填充列表并允许PyMC将其视为PyMC节点的容器。

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