Mais conteúdo relacionado
Semelhante a Stanとdlmによる状態空間モデル (20)
Stanとdlmによる状態空間モデル
- 8.
カルマンフィルタ
▶ ⾏列計算により、フィルタリング・平滑化・予測をおこなう 2
フィルタリング {y1, y2, . . . , yt} から θt を推定
平滑化 {y1, y2, . . . , yt} から {θ1, θ2, . . . , θt} を推定
予測 {y1, y2, . . . , yt} から {θt+1, θt+2, . . . } および
{yt+1, yt+2, . . . } を推定
▶ パラメータとして、観測⽅程式・状態⽅程式の共分散⾏列(と
初期値)が必要
2
具体的な計算式は、野村俊⼀『カルマンフィルタ—R を使った時系列予測と
状態空間モデル』共⽴出版, 2016 などを参照
- 15.
R コード
1 ## Stan にわたすデータのリスト
2 stan˙data ¡- list(N = length(Nile),
3 Y = matrix(Nile, 1),
4 M0 = array(100),
5 C0 = matrix(100, 1, 1))
6
7 ## あてはめ
8 fit ¡- stan(”dlm1.stan”, data = stan˙data,
9 pars = c(”s2”), seed = 1,
10 iter = 2000, warmup = 1000)
11
- 21.
トレンドモデル
▶ 状態⽅程式
θ1,t = θ1,t−1 + θ2,t−1 + w1,t
θ2,t = θ2,t−1 + w2,t
↓
(
θ1,t
θ2,t
)
=
(
1 1
0 1
) (
θ1,t−1
θ2,t−1
)
+
(
w1,t
w2,t
)
↓
G =
(
1 1
0 1
)
, W =
(
σ2
w1 0
0 σ2
w2
)
- 26.
R コード
1 ## Stan にわたすデータのリスト
2 stan˙data ¡- list(N = length(Nile),
3 Y = matrix(Nile, 1),
4 M0 = c(100, 1),
5 C0 = matrix(c(1e7, 0, 0, 1e7), 2, 2))
6
7 ## あてはめ
8 fit ¡- stan(”dlm2.stan”, data = stan˙data,
9 pars = c(”s2”), seed = 1,
10 iter = 2000, warmup = 1000)
11