我曾经用C编码我的MCMC。但是我想试试PyMC。
假设X_n是基础状态,其动态遵循马尔可夫链,Y_n是观测数据。特别是,
Y_n具有泊松分布,其平均值取决于X_n和多维未知参数θ X_n | X_ {n-1}具有取决于theta的分布
我应该如何使用PyMC描述这个模型?
另一个问题:我可以找到theta的共轭先验,但不能找到X_n。是否可以指定哪些后验更新使用共轭先验和哪些使用MCMC?
答案 0 :(得分:3)
Here is an example of a state-space model in PyMC。它主要涉及填充列表并允许PyMC将其视为PyMC节点的容器。
至于问题的第二部分,你当然可以提前计算一些共轭后验并将它们放入模型中。例如,如果您观察到二项式数据x=4
,n=10
,您可以插入一个Beta节点p = Beta('p', 5, 7)
来代表该后验(就模型而言,它实际上只是一个先验数据,但是它是后验给定数据x
)。然后PyMC会在每次迭代时为此后验绘制一个样本,以便在模型中需要的任何地方使用。