python - PYMC3 季节性变量

标签 python bayesian pymc pymc3

我对 PYMC3 比较陌生,我正在尝试实现没有回归变量的贝叶斯结构时间序列 (BSTS),例如模型拟合 here在R中。模型如下:

model

我可以使用 GaussianRandomWalk 实现局部线性趋势,如下所示:

delta = pymc3.GaussianRandomWalk('delta',mu=0,sd=1,shape=99)
mu = pymc3.GaussianRandomWalk('mu',mu=delta,sd=1,shape=100)

但是,我不知道如何在 PYMC3 中对季节性变量 (tau) 进行编码。我需要滚动自定义随机游走类还是有其他技巧?

最佳答案

你可以使用

w = pm.Normal('w', sd=sigma_tau, shape=S)
tau = w - tt.concatenate([[0.], w.cumsum()[:-1]])

根据数据,对其他随机游动使用 cumsum 也可能更快,这通常会避免后验相关性,这让采样器的工作更轻松。

关于python - PYMC3 季节性变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45806799/

相关文章:

R 节点的某些条件概率分布之和不等于 1

python-3.x - 在 Mac OS 10.14.5 上安装 pymc

python - 使用 PyMC3 进行增量模型更新

python - 在 SQLAlchemy 中禁用提交对象更改

python - 如何将 Faktory 与 ruby​​ 作业和 python 作业一起使用?

python - 使用 ReferenceProperties 过滤模型

php - 贝叶斯评级

python - 构建sphinx文档时导入模块失败

nlp - 具有 top-k 输出的大规模朴素贝叶斯分类器

python - 可以在 PyMC 确定性函数中使用 "if"语句吗?