無粋な日々に

頭の中のメモ。分からないことを整理する

時系列分析:後退オペレータについて

時系列の勉強をしていると、後退オペレータ(Backshift Operator)というのが出てきます。このオペレータを使って時系列モデルを表現することで、簡潔で見通しの良い議論が可能になるようです。本投稿ではこれについて考察したいと思います。なお後退オペレータは、様々な呼び名があるようで、シフトオペレータ、時間シフトオペレータ、Backshift Operator、Backwardshift Operator など異なる記述で書かれています。

後退オペレータの定義

英語版Wikiでは次のように説明してあります

時系列分析において後退オペレータは時系列の要素に作用し、前の要素を生成する

In time series analysis, the lag operator (L) or backshift operator (B) operates on an element of a time series to produce the previous element.

つまり時系列のある時点tの値\displaystyle{X_t}を一時点前の\displaystyle{X_{t-1} } に戻すような操作になります。

次のような時系列\displaystyle{X}があったとすると

\displaystyle{


X = \{X_1, X_2\, X_3, \dots \}

}

後退オペレータ\displaystyle{B}は以下のように定義されます。

\displaystyle{


X_{t-1} = BX_t

}

ある時点tの要素\displaystyle{X_t}に後退オペレータ\displaystyle{B}を乗ずることで、一時点前の要素\displaystyle{X_{t-1}}を得ることができます。

同様に二つ前の要素は

\displaystyle{


\begin{align}
X_{t-2} &= BX_{t-1}\\
&= B(BX_{t}) \\
&= B^2X_t
\end{align}

}

のようにアクセスできます。一般に\displaystyle{k}時点前の要素は後退オペレータを用いて次のようにアクセスできます。

\displaystyle{


X_{t-k} = B^kX_t

}

後退オペレータの多項式表現

後退オペレータを用いて時系列モデル(確率過程)を簡潔に表現するケースは多く見受けられます。その際に次のように後退オペレータ\displaystyle{B}多項式\displaystyle{\phi(B)}を使って統一的にモデルを表現します。まずこのことを頭に入れて次の具体例を眺めると良いと思います。

\displaystyle{


\begin{align}
\phi(B) &= \beta_0 + \beta_1B + \beta_2B^2 + \beta_3B^3 + \dots + \beta_kB^k\\
&=\sum_{i=0}^{k}\beta_{i}B^i
\end{align}

}

後退オペレータの使いどころ

それでは具体例を見ていきましょう。以下の例はCourseraのここに記載している内容ほぼそのまんまです。

1. ランダムウォーク

まず以下のランダムウォークを考えます。

\displaystyle{


X_t = X_{t-1} + \varepsilon_t\\

}

where

\displaystyle{


\varepsilon_t \sim \operatorname{iid}(0, \sigma^2)

}

ランダムウォークを後退オペレータを用いて表すと

\displaystyle{


\begin{align}
X_t &= X_{t-1} + \varepsilon_t\\
&=BX_{t} + \varepsilon_t\\

\end{align}

}

となります。

さらに後退オペレータの多項式\displaystyle{\phi(B)}を使って次のようになります。

\displaystyle{


(1 - B)X_t = \varepsilon_t \\
\phi(B)X_t = \varepsilon_t\\

}

where

\displaystyle{


\phi(B) = 1 - B\\

}

ランダムウォーク自体がシンプルなので、さほど後退オペレータのありがたみは感じません。

2. MA(q)モデル

MA(q)モデルを見てみましょう。 ランダムウォークと同じですがMA過程なので\displaystyle{\varepsilon_t}に対して後退オペレータを適用します

\displaystyle{


\begin{align}
X_t &= \varepsilon_t + \beta_1\varepsilon_{t-1} + \beta_2\varepsilon_{t-2} +  \dots + \beta_q\varepsilon_{t-q}\\
&= \varepsilon_t + \beta_1B\varepsilon_{t} + \beta_2B^2\varepsilon_{t} +  \dots + \beta_qB^q\varepsilon_{t}\\
&= (1 + \beta_1B + \beta_2B^2 +  \dots + \beta_qB^q)\varepsilon_{t}\\
\end{align}

}



\displaystyle{


\begin{align}
X_t &=(1 + \beta_1B + \beta_2B^2 +  \dots + \beta_qB^q)\varepsilon_{t}\\
&= \phi(B)\varepsilon_{t}
\end{align}

}

where

\displaystyle{


\phi(B) = 1 + \beta_1B + \beta_2B^2\varepsilon_{t} +  \dots + \beta_qB^q

}

\displaystyle{X_t = \phi(B)\varepsilon_t} というのは簡潔ですね。

3. AR(p)モデル

またAR(p)過程は、次のようになります

\displaystyle{


\begin{align}
X_t &= \beta_1X_{t-1} + \beta_2X_{t-2} +  \dots + \beta_qX_{t-q} + \varepsilon_t\\
&= \beta_1BX_{t} + \beta_2B^2X_{t} +  \dots + \beta_qB^qX_{t} + \varepsilon_t\\
\end{align}

}



\displaystyle{


\begin{align}
X_t - \beta_1BX_t + \beta_2B^2X_{t} +  \dots + \beta_qB^qX_{t}= \varepsilon_t\\
(1 - \beta_1B + \beta_2B^2 +  \dots + \beta_qB^q)X_{t}= \varepsilon_t\\
\phi(B)X_{t}= \varepsilon_t\\

\end{align}

}

where

\displaystyle{


\phi(B) = 1 - \beta_1B + \beta_2B^2 +  \dots + \beta_qB^q

}

\displaystyle{\phi(B)X_{t}= \varepsilon_t} というのも簡潔ですね。

4. ARMAモデル

上記のMA(q)とAR(p)を踏まえてARMAモデルも考えてみます。

\displaystyle{


X_t = \sum_{i=1}^{p}\alpha_iX_{t-i} + \varepsilon_t + \sum_{i=1}^{q}\beta_i\varepsilon_{t-i}\\


X_t - \sum_{i=1}^{p}\alpha_iB^iX_{t} =   \varepsilon_t + \sum_{i=1}^{q}\beta_iB^i\varepsilon_{t}\\

(1 - \sum_{i=1}^{p}\alpha_iB^i)X_{t} =   (1 + \sum_{i=1}^{q}\beta_iB^i)\varepsilon_{t}\\

\phi_{\alpha}(B)X_t = \phi_{\beta}(B)\varepsilon_t\\

}

where

\displaystyle{


\phi_{\alpha}(B) = 1 - \sum_{i=1}^{p}\alpha_iB^i\\


\phi_{\beta}(B) = 1 + \sum_{i=1}^{q}\beta_iB^i\\

}

ARMAモデルは\displaystyle{\phi_{\alpha}(B)X_t = \phi_{\beta}(B)\varepsilon_t}のように大変スッキリした形で記述できることがわかります。ARモデルとMAモデルの表現も統一感があります。

5. 差分作用素

差分作用素は後退オペレータでも記述できます

1階差の場合:

\displaystyle{


\begin{align}
\nabla X_t &= X_t - X_{t-1}\\
&= (1 - B)X_t
\end{align}

}

2階差の場合:

\displaystyle{


\begin{align}
\nabla^2 X_t &=(X_t - X_{t-1}) - (X_{t-1} - X_{t-2}) \\
&= (1 - B)X_t - (1 - B)X_{t-1}\\
&= (1 - B)(X_t - X_{t-1})\\
&= (1 - B)^2X_t\\

\end{align}

}

一般に

\displaystyle{


\nabla^iX_t = (1 - B)^iX_t

}

後退オペレータは何なのか

ところで後退オペレータの実態は何なのでしょうか。ある関数\displaystyle{f(t)}に乗ずることで、\displaystyle{t}をシフトさせるような作用素といえば、複素数が思い浮かびます。厳密ではないですが、後退オペレータは複素数そのものと考えて問題なさそうな気がします。

たとえば関数 \displaystyle{ x(t)}があるとして、フーリエ級数に展開できるとすると

\displaystyle{


x(t) = \sum_{k=\infty}^{\infty}c_k\mathrm{e}^{jkt}

}

等間隔\displaystyle{d}でサンプリングされたすると

\displaystyle{


X(n) = \sum_{k=\infty}^{\infty}c_n\mathrm{e}^{jkdn}

}

これを\displaystyle{X(n-1)}にしたい場合、\displaystyle{\mathrm{e}^ {-jdn}} を乗じてあげれば、なんかよさそうです。

\displaystyle{


\begin{align}
\mathrm{e}^{-jdn}X(n) &= \mathrm{e}^{-jdn}\sum_{k=\infty}^{\infty}c_n\mathrm{e}^{jkdn}\\
&= \sum_{k=\infty}^{\infty}c_n\mathrm{e}^{j(k-1)dn}\\
&= X(n - 1)

\end{align}

}

なので、この場合\displaystyle{B = \mathrm{e}^ {-jdn}}で問題ないかなと思うのですが、どなたかご存知でしたら教えて下さい。

シフト作用素 - Wikipedia

追記: 関数解析学の分野でシフト作用素として一般化されているものでした。折を見て、整理し直したいと思います。日々精進

参考文献