2017-08-21 12 views
2

私はPYMC3に比較的新しいだと私は次のように例えばR.中hereフィットモデルがモデルである、説明変数なしベイジアン構造時系列(BSTS)を実装しようとしています:PYMC3季節変数

次のようにmodel

私はGaussianRandomWalkを使用して局所線形トレンドを実装できます。

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

をしかし、私はPYMC3に季節変動(タウ)をエンコードする方法については途方に暮れてよ。私は、カスタムランダムウォーククラスをロールバックする必要がありますか、またはいくつかの別のトリックがありますか?

答えて

0

あなたはまた、多くの場合、サンプラーのための生活が容易になり、後方に相関を回避することを、他のランダムウォークのためcumsumを使用する方が速いかもしれないデータに応じて、

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

を使用することができます。

+0

なぜこれがタウの正しい形を与えるのか、私には明らかではありませんが、あなたは精緻化できますか?とにかく、これは次元の不一致を生じる。私がS = 12をとると、tauは12次元のベクトルであり、muは100次元です。これは私がy = pm.Normal( 'y'、mu = mu + tau、sd = sigma_y、observation = y_train)を形成することを妨げる。あなたがu = pm.Normal( 'u'、sd = sigma_delta)とdelta = u + tt.concatenate([[0。]、u.cumsum()[:を意味する散歩のためのcumsumトリックを言うとき、 -1]])? – Paul

+0

私はあなたの評判を得ることができるようにあなたの応答を受け入れたいと思いますが、テンソルの形状とyの形成に関する前書きはできません。 – Paul

関連する問題