gpt4 book ai didi

python - 如何在 PyMC3 中随时间更新观察结果?

转载 作者:行者123 更新时间:2023-12-03 09:04:05 26 4
gpt4 key购买 nike

我正在自学 PyMC3,并且正在复制 this changepoint detection example 。我想通过随时间对 2 个不同泊松率参数的后验进行采样来扩展该示例。我将如何继续这样做?

提供更多细节:如果我有示例中的时间序列y。我想首先使用观测值 y[0:2] 进行采样,然后对 y[0:3]y[0:4] 进行采样, ...,y[0:100]。我的目标是绘制 mu0mu1 (泊松率参数)随时间 2..100 的分布。显然,我应该能够通过创建大约 98 个不同的模型并对每个模型独立进行采样来做到这一点。然而,这似乎效率相当低,我想知道是否有更好的方法用新的观察结果更新模型并继续跟踪?

我在文档或在线中找不到任何相关内容,因此我尝试仅替换变量,但随后收到“ValueError:变量名称更改点已存在。”。

TLDR;是否有一种有效的方法可以随着时间的推移更新观测值,并使用这些新观测值继续从先前的跟踪中采样?

最佳答案

您是否尝试用 theano.shared 包装 y 并在每一步更新 y 值?像这样的东西:

yshared = theano.shared(y[0:2])
with pm.Model() as m:
# setup model
y_obs = pm.SOMEDISTRIBUTION('',..., observed=yshared)
# inference
with m:
trace.append(pm.sample())
# update value
yshared.set_value(y[0:3])
# inference again
with m:
trace.append(pm.sample())

如有更多问题,请发帖至https://discourse.pymc.io与您的模型和(模拟)数据。我们更频繁地检查和回答我们的谈话。

关于python - 如何在 PyMC3 中随时间更新观察结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48517719/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com