- 状態方程式:予測対象分布 x_t = T_t * x_(t-1) + R_t * ξ_t ξ_t~N(0, Q_t)
- 観測方程式:予測対象の観測値の分布 y_t = Z_t * x_t + ε_t ε_t~N(0, H_t)
- フィルタリング:手に入った観測値で、予測された状態の値を補正
- 平滑化:すべてのデータが手に入った後に、状態の補正を行う(予測精度が上がるわけではないが、補正に使われる情報が増えるので、ノイズの影響を軽減できる)
- プログラム例1(statsを用いた外生変数入れた予測モデル)
- プログラム例2(サブクラス作成による予測モデル)
ローカルレベルモデル
- 状態方程式:μ_t = μ_(t-1) + ω_t ω_t~N(0, σ²_ω)
- 観測方程式:y_t = μ_t + ν_t ν_t~N(0, σ²_ν)
ローカル線形トレンドモデル
- トレンド成分:δ_t = δ_(t-1) + ξ_t ξ_t~N(0, σ²_ξ)
- 状態方程式:μ_t = μ_(t-1) + δ_(t-1) + ω_t ω_t~N(0, σ²_ω)
- 観測方程式: y_t = μ_t + ν_t ν_t~N(0, σ²_ν)
カルマンフィルタ
- 予測ステップ
- μ_t = μ_(t-1)|(t-1) μ_(t-1)|(t-1):t-1時点のフィルタ化推定量
- P_t = P_(t-1)|(t-1) + σ²_ω P_(t-1)|(t-1):t-1時点の「状態のフィルタ化推定量μ_(t-1)|(t-1)の推定誤差分散」
- ^y_t = μ_t ^y_t:t時点の観測値の予測値
- F_t = P_t + σ²_ν F_t:t時点の「観測値の予測誤差の分散」
- フィルタリング
- K_t = P_t / (P_t + σ²_ν) = P_t / F_t K_t:カルマンゲイン
- y_resid,t = y_t - ^y_t y_resid,t:観測誤差
- μ_t|t = μ_t + K_t * y_resid,t
- P_t|t = (1 - K_t ) * P_t
散漫カルマンフィルタ
カルマンフィルタの改良版
状態の初期値への対応を以下のように行う
- 状態の初期値はあきらめる
- ただし、「状態の予測誤差の分散」の初期値を無限大にしておく
※散漫カルマンフィルタを入れることで、最初の予測値の精度が上がるが、時間経過とともにカルマンフィルタの値を同じになるので、初期値の精度気にしないなら、いらないと思われる
平滑化
省略
0コメント