【状態空間モデル】ローカルレベルモデル(stan) [データサイエンス、統計モデル]
R stanを使ってローカルレベルモデルの話。
ローカルレベルモデルは、最もシンプルな(基本的な)モデル。
広告効果とかを入れる場合は、そういった変数を入れる必要があるのですが、今回は、シンプルに外部変数なしのバージョンです。
ローカルレベルの構造は、
状態モデル:x(t) = x(t-1) + sd_w(t)
観測モデル:y(t) = x(t) + sd_v(t)
で表されるモデル。
これを階層ベイズモデルの枠組みで解くことになるので、stanで実装すると、下記のようになります。
#### stanのmodel部分 ####
model {
for(i in 2:T) {
x[i] ~ normal(x[i-1], sd_w);
}
for(i in 1:T) {
y[i] ~ normal(x[i], sd_v);
}
}
########################
試しに、サンプルデータで実行すると、こんな感じ。
トレンドはなんとなくなぞっていますが、広告(CM)の効果とか無視されているのがわかるかと思います。
ローカルレベルモデルは、最もシンプルな(基本的な)モデル。
広告効果とかを入れる場合は、そういった変数を入れる必要があるのですが、今回は、シンプルに外部変数なしのバージョンです。
ローカルレベルの構造は、
状態モデル:x(t) = x(t-1) + sd_w(t)
観測モデル:y(t) = x(t) + sd_v(t)
で表されるモデル。
これを階層ベイズモデルの枠組みで解くことになるので、stanで実装すると、下記のようになります。
#### stanのmodel部分 ####
model {
for(i in 2:T) {
x[i] ~ normal(x[i-1], sd_w);
}
for(i in 1:T) {
y[i] ~ normal(x[i], sd_v);
}
}
########################
試しに、サンプルデータで実行すると、こんな感じ。
トレンドはなんとなくなぞっていますが、広告(CM)の効果とか無視されているのがわかるかと思います。
コメント 0