カルマンフィルタ:状態空間モデルの最適フィルタリング
状態空間モデルとカルマンフィルタ
カルマンフィルタは状態空間モデルにおける最適な状態推定アルゴリズムです。ランダムウォーク・プラス・ノイズモデルは最も基本的な状態空間モデルの一つで、トレンド成分と観測ノイズを分離します。
モデル設定の確認
Step 1: 状態空間モデルの構造
状態方程式(システムモデル):
$\alpha_{t+1} = \alpha_t + \eta_t$
観測方程式(観測モデル):
$y_t = \alpha_t + \varepsilon_t$
ノイズの仮定:
- $\eta_t \sim N(0, Q = 1)$:状態ノイズ(システムノイズ)
- $\varepsilon_t \sim N(0, R = 4)$:観測ノイズ
- $\eta_t$ と $\varepsilon_s$ は独立(すべての $t, s$)
初期条件:
$\alpha_1|Y_0 \sim N(a_{1|0}, P_1 = 2)$
カルマンフィルタのアルゴリズム
Step 2: 一般的なカルマンフィルタの手順
カルマンフィルタは予測ステップと更新ステップの2段階で構成されます:
予測ステップ(Prediction Step):
$\begin{align}a_{t|t-1} &= T a_{t-1|t-1} \\P_{t|t-1} &= T P_{t-1|t-1} T' + Q\end{align}$
更新ステップ(Update Step):
$\begin{align}v_t &= y_t - Z a_{t|t-1} \\F_t &= Z P_{t|t-1} Z' + R \\K_t &= P_{t|t-1} Z' F_t^{-1} \\a_{t|t} &= a_{t|t-1} + K_t v_t \\P_{t|t} &= P_{t|t-1} - K_t Z P_{t|t-1}\end{align}$
Step 3: 本モデルでのシステム行列の設定
ランダムウォーク・プラス・ノイズモデルでは:
- $T = 1$(状態遷移行列)
- $Z = 1$(観測行列)
- $Q = 1$(状態ノイズ分散)
- $R = 4$(観測ノイズ分散)
$t=1$でのカルマンフィルタ計算
Step 4: 予測ステップの実行
予測分散の計算:
初期状態($t=0$)から$t=1$への予測:
$P_{1|0} = T P_{0|0} T' + Q = 1 \times P_1 \times 1 + Q = 2 + 1 = 3$
ここで、$P_{0|0} = P_1 = 2$(初期値)を使用しました。
予測分散の意味
予測分散$P_{1|0} = 3$は、観測データ$y_1$を見る前の時点での状態$\alpha_1$の推定不確実性を表します。初期不確実性(2)に状態ノイズ(1)が加わり、不確実性が増大しています。
Step 5: 更新ステップの実行
予測誤差分散の計算:
$F_1 = Z P_{1|0} Z' + R = 1 \times 3 \times 1 + 4 = 3 + 4 = 7$
カルマンゲインの計算:
$K_1 = P_{1|0} Z' F_1^{-1} = 3 \times 1 \times \frac{1}{7} = \frac{3}{7}$
更新後分散の計算:
$P_{1|1} = P_{1|0} - K_1 Z P_{1|0} = 3 - \frac{3}{7} \times 1 \times 3 = 3 - \frac{9}{7} = \frac{21-9}{7} = \frac{12}{7} $
カルマンフィルタの情報統合メカニズム
更新後分散の減少:$P_{1|1} = 1.2 < P_{1|0} = 3$
これは観測データ$y_1$が新しい情報をもたらし、状態の推定精度が向上したことを示します。カルマンゲイン$K_1 = \frac{3}{7} \approx 0.43$は、予測値と観測値の重み付けバランスを表しています。
カルマンフィルタの理論的基礎
Step 7: ベイズ推論としての解釈
カルマンフィルタはベイズ推論の特殊ケースとして理解できます:
事前分布:
$\alpha_1|Y_0 \sim N(a_{1|0}, P_{1|0})$
尤度:
$y_1|\alpha_1 \sim N(\alpha_1, R)$
事後分布:
$\alpha_1|y_1, Y_0 \sim N(a_{1|1}, P_{1|1})$
ガウシアン分布の共役性により、事後分布も正規分布となり、平均と分散が解析的に計算できます。
拡張カルマンフィルタと粒子フィルタ
Step 8: 非線形・非ガウシアン拡張
1. 拡張カルマンフィルタ(EKF)
非線形状態空間モデル:
$\begin{align}\alpha_{t+1} &= f(\alpha_t) + \eta_t \\y_t &= h(\alpha_t) + \varepsilon_t\end{align}$
線形化による近似:
$\begin{align}F_t &= \frac{\partial f}{\partial \alpha}\bigg|_{\alpha_{t|t}} \\H_t &= \frac{\partial h}{\partial \alpha}\bigg|_{\alpha_{t|t-1}}\end{align}$
2. 無香料カルマンフィルタ(UKF)
シグマポイント法による高精度近似:
- 決定論的サンプリング
- 高次のモーメントマッチング
- EKFよりも精度が高い
3. 粒子フィルタ
モンテカルロ法による完全非線形フィルタ:
$p(\alpha_t|y_{1:t}) \approx \sum_{i=1}^{N} w_t^{(i)} \delta(\alpha_t - \alpha_t^{(i)})$
| 手法 | 適用範囲 | 利点 | 欠点 |
|---|
| カルマンフィルタ | 線形ガウシアン | 最適、高速 | 制限的 |
| 拡張カルマンフィルタ | 弱非線形 | 計算効率良 | 線形化誤差 |
| 無香料カルマンフィルタ | 中程度非線形 | 高精度、微分不要 | 計算コスト増 |
| 粒子フィルタ | 一般的 | 非常に柔軟 | 計算コスト高 |