我对 PYMC3 比较陌生,我正在尝试实现没有回归变量的贝叶斯结构时间序列 (BSTS),例如模型拟合 here在R中。模型如下:
我可以使用 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/