PYMC3季节变量

时间:2017-08-21 23:21:44

标签: python bayesian pymc pymc3

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

model

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

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

然而,我对如何编码PYMC3中的季节变量(tau)感到茫然。我是否需要滚动自定义随机游走类或是否还有其他技巧?

1 个答案:

答案 0 :(得分:0)

您可以使用

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

根据数据,将cumsum用于其他随机游走也可能更快,这通常可以避免后验中的相关性,这使得采样器的生活更加轻松。