カルマンフィルタを使用することで,逐次的なパラメータ同定を実現することができる。
目的変数,説明変数,パラメータをそれぞれ
y∈R, ϕ∈Rn, θ∈Rnとし,目的変数の決定に関して以下の線形回帰モデルを仮定する。
y^=θTϕ
ただし,上添字
^ は推定値であることを表す。
推定対象のパラメータがランダムウォークすると仮定して,次のような状態空間表現をする。
θ[k+1]y[k]=θ[k]+v=ϕT[k]θ[k]+w,
パラメータにダイナミクスを考慮しないためシステム行列は
I,パラメータに作用する方法がないため入力行列は
0,観測行列は説明変数ベクトル
ϕ となる。
v,w はそれぞれプロセス雑音と観測雑音を表し,以下を満たすものとする。
E[v]E[w]=0, E[vvT]=Q=0, E[w2]=R
このシステムに対してカルマンフィルタを設計することを考える。
まず,予測ステップは以下のように行われる。
θ^p[k]Pp[k]=θ^[k−1]=P[k−1]+Q
ただし,
P は誤差共分散を表し,下添字
p は予測状態量であることを示す。続いて,修正ステップは以下のように行われる。
θ^[k]P[k]=θ^p[k]+K[k]ep[k]=θ^[k−1]+K[k]e[k]=(I−K[k]ϕT[k])Pp[k]
ただし,
e は予測誤差,
S は観測残差の共分散,
K はカルマンゲインを表し,以下のように記述される。
ep[k]S[k]K[k]=y[k]−ϕT[k]θp[k]=y[k]−ϕT[k]θ^[k−1]=R+ϕT[k]Pp[k]ϕ[k]=Pp[k]ϕ[k]S[k]−1
カルマンフィルタの処理を簡潔に記述すれば,以下のようになる。
θ^[k]K[k]Pp[k+1]=θ^[k−1]+K[k]e[k]=Pp[k]ϕ[k](R+ϕT[k]Pp[k]ϕ[k])−1=P[k]+Q=(I−K[k]ϕT[k])Pp[k]+Q=Pp[k]−Pp[k]ϕ[k](R+ϕT[k]Pp[k]ϕ[k])−1ϕT[k]Pp[k]+Q
これは逐次最小二乗法の処理に近い推定を行っている。逐次最小二乗法が出力の出力推定誤差の分散を最小化するように設計されているのに対し,カルマンフィルタは推定状態量 (今回はパラメータ) の推定誤差の分散を最小化するように設計される。プロセス雑音や観測雑音の存在を考慮した上で,推定対象であるパラメータの推定誤差分散を直接的に最小化する点が利点と考えられる。また,ランダムウォークを仮定することで,時変システムのパラメータ同定にも対応ができる。ただし,その場合には
Q を大きく設定する必要があり,推定精度の劣化が懸念される。これはパラメータの時間遷移の予測が困難であることをフィルタに伝えており,推定を観測値に頼るよう指示しているに等しい。線形定常カルマンフィルタの動作は低域通過フィルタの動作に等しく,遮断周波数が
Q によって高くなることに留意する必要がある。