この記事では,研究のサーベイをまとめていきたいと思います。ただし,全ての論文が網羅されている訳ではありません。また,分かりやすいように多少意訳した部分もあります。ですので,参考程度におさめていただければ幸いです。
間違えている箇所がございましたらご指摘ください。随時更新予定です。他のサーベイまとめ記事はコチラのページをご覧ください。
自己回帰とは?
自己回帰モデルは,主に時系列データに対して用いられます。今まで考えていた回帰モデルは,x軸の依存関係は特に考えていませんでした。しかし,今回は時系列モデルということで,未来の出力は直前の出力から決定されます。
どれだけ直前までを考慮して未来の出力を決めるかというパラメータを$k$とおくことにします。ここで,$k$次の自己回帰モデルは以下のように書くことができます。
\begin{eqnarray}
\hat{y}_{t} = \sum_{i=1}^{k}a_i y_{t-i}
\end{eqnarray}
注意するべきなのは,実際に手に入っているデータは$t$までで,上の式は$y_t$の直前$k$個のデータを利用してモデルを作っていることを表しています。ここで問題になるのが,係数$a_i$です。この係数を求めるために,実際観測された値$y_t$と予測された値$\hat{y}_t$の二乗誤差を考えます。
\begin{eqnarray}
\rm{E}[\epsilon_t ^2] &=& \rm{E}[(y_{t} – \sum_{i=1}^{k}a_i y_{t-i})^2] \\
&=& \phi_0 + 2\boldsymbol{\phi}^T\boldsymbol{a} + \boldsymbol{a}^T \boldsymbol{\Phi} \boldsymbol{a}
\end{eqnarray}
ただし,各パラメータは以下のように定めました。
\begin{eqnarray}
\phi_L &=& \rm{E}[y_i y_{i-L}] \\
\boldsymbol{\phi} &=&
\left( \begin{matrix}
\phi_1 \\
\phi_2 \\
\vdots \\
\phi_{k}
\end{matrix} \right) \\
\boldsymbol{a} &=&
\left( \begin{matrix}
a_1 \\
a_2 \\
\vdots \\
a_{k}
\end{matrix} \right) \\
\boldsymbol{\Phi} &=&
\left(
\begin{array}{ccccc}
\phi_{0} & \cdots & \phi_{i} & \cdots & \phi_{k-1}\\
\vdots & \ddots & & & \vdots \\
\phi_{i} & & \phi_{0} & & \phi_{i} \\
\vdots & & & \ddots & \vdots \\
\phi_{k-1} & \cdots & \phi_{i} & \cdots & \phi_{0}
\end{array}
\right) \\
\end{eqnarray}
あとは,式(3)を変微分して$\boldsymbol{a}$について解くだけです。
\begin{eqnarray}
\frac{\partial \rm{E}[\epsilon_t ^2]}{\partial a_i}&=&0\;\;(i=0,1,\ldots, k-1) \\
\boldsymbol{\Phi}\boldsymbol{a} &=& \boldsymbol{\phi} \\
\boldsymbol{a} &=& \boldsymbol{\Phi}^{-1}\boldsymbol{\phi}
\end{eqnarray}
この方程式は,ユールウォーカー方程式と呼ばれており,$\boldsymbol{\Phi}$がテプリッツ行列であることに注目すれば,レヴィンソン–ダービンのアルゴリズムという方法を利用して効率よく計算することができます。
●Pattern Recognition and Machine Learning, Christopher Bishop