递归贝叶斯与pymc

时间:2014-06-05 18:39:10

标签: recursion bayesian pymc

一般来说,贝叶斯推理的工作原理如下:

prior = foo
for data in (dataSet as it arrives):
    posterior = prior+model+data
    prior = posterior

惊人的昙花一现PyMC似乎有工作流程:

prior = foo
run MCMC on prior+AllTheModel+AllTheData
posterior = trace

这很酷,但我该如何关闭循环呢? I.E.如何将跟踪转换为我的下一个数据或模型的先验?


更具体地说明我的用例: 我有每个工作日的数据。我目前使用PyMC的工作流程:

At the end of each day the program is run. 
It starts with uninformative priors. 
Then it loads in all the data for the whole history.
Runs MCMC, and generates reports from the traces.

项目的前几天,该计划在合理的时间内运行,小伯尔尼和小薄。当我们进入项目的几周时,该程序需要很长时间才能运行。此外,它经常需要重新运行到不足的bern或高acor。这是Shlemiel the painter's algorithm。有没有办法将昨天完成的分析保存为当前数据模型之前?

1 个答案:

答案 0 :(得分:1)

在PyMC中没有好办法。出来的后验由一组样本表示。您可以将之前的样本设置为昨天样本的点质量混合,但这不太可能正常。您必须将参数近似拟合到后验,才能有效地将其用作先验。