時系列解析前に対数変換や移動平均などのデータ前処理を行う

時系列データ解析の前処理

時系列データは、時間的順序を追って一定間隔ごとに観察されたデータである。このような時系列データを解析するにあたり、データの変数変換や平滑化などの前処理を必要とする場合がある。

変数変換

対数変換

値が著しく大きい時系列データの場合、データの変動も大きくなりがちである。このような場合、データに対して対数変換することで、データが持つ時系列的な傾向を保ったまま、値を小さく変換することができるようになる。その結果、変換後のデータの時系列的な変動も一様になる。

\[ z_{t} = \log(y_{t}) \]

ただし、時系列データを対数変換したとき、その結果を解釈するとき、結果も対数変換されていることに注意する必要がある。例えば、ある時系列データが傾向変動と周期変動の 2 つの要因で変動している場合、以下のようにモデルを構築できるものとする。

\[ y_{t} = trend + period \]

仮に、この時系列データの値の変動が大きいので、対数変換したいとする。このとき、このモデルに対して、観測値と各変動要因に関して対数変換を行うと、モデルの構造は次のようになる。つまり、(対数変換の方法によって、)モデル中の相加効果が相乗効果へと変わってしまうことがある。

\[ \begin{eqnarray} \log(y_{t}) &=& \log(trend) + \log(period) \\ &=& \log(trend \times period) \end{eqnarray} \]

ロジット変換

値が 0 から 1 までの値をとる確率あるいは割合データの場合、ロジット変換を施すと、確率・割合データはマイナス無限大からプラス無限大の値に変換される。変換後のデータを使うことで、様々な時系列モデルに当てはめて解析できるようになる。

\[ z_{t} = \log\left(\frac{y_{t}}{1 - y_{t}}\right) \]

差分(階差)

ある時点 t のときの値とその直前の時点 t-1 のときの値の差分 Δdt = yt - yt-1 を計算して、それを新しいデータとする。上昇あるいは下降のトレンドを持つ時系列データ(yt = at + b)のとき、差分を計算することで、トレンドを取り除くことができる。

\[ z_{t} = y_{t} - y_{t-1} = (at + b) - (a(t-1) + b) = a \]

また、解析目的によって差分の差分を計算して解析することもある。

対数差分

時系列データが変化率や成長率などである場合、対数差分 Δlog(yt) = log(yt / yt-1) を計算して解析することがある。時点 t-1 と時点 t の間隔が短かく、両時点で観測した値が非常に近い値をとる場合、対数差分が 0 に限りなく値を取る。そのため、対数差分を、一般的に Δlog(yt) テイラー展開の一時近似とする。

\[ z_{t} = \Delta \log(y_{t}) = \log\left(\frac{y_{t}}{y_{t-1}}\right) = \log\left(1 + \frac{y_{t} - y_{t-1}}{y_{t-1}}\right) \sim \frac{y_{t} - y_{t-1}}{y_{t-1}} \]

変化率や成長率などの時系列データを解析する場合、時点 t と時点 t - s の比を計算して解析することもある。

\[ z_{t} = \frac{y_{t}}{y_{t - s}} \]

平滑化

移動平均

時系列データの変化のブレが細かく、解析に悪影響を及ぼす場合がある。このとき、ある時点 t の前後のデータを使って時点 t の値を調整することにより、時点 t の値はその前後の値との差が小さくなる。この操作を時系列全体に対して行うことで、時系列データがなめらかになる。例えば、ある時点 t のデータを、t-k から t+k までのデータの平均とした場合は、以下のように計算できる。

\[ \begin{eqnarray} z_{t} &=& \frac{1}{2k + 1}\left ( y_{t-k} + y_{t-(k+1)} + \cdots + y_{t} \cdots + y_{t + (k-1)} + y_{t + k} \right) \\ &=& \frac{1}{2k + 1} \sum_{i=-k}^{k}y_{t+i} \end{eqnarray} \]

平均値を用いた平滑化は、時系列データをなめらかにすることができる。しかし、データに外れ値などが含まれる場合、それに影響されて、平滑化することでデータ本来の特徴がなくなる危険性がある。

また、書く時点のデータに対して重み wi をかける場合もある。すなわち、\( \sum_{i=-k}^{k}w_{i} = 1 \) かつ wi ≥ 0 のとき、

\[ z_{t} = \frac{1}{2k + 1} \sum_{i=-k}^{k}w_{i}y_{t+i} \]

移動中央値

また、平均値のほかに中央値を用いて平滑化することもできる。移動中央値は、移動平均に比べて、外れ値の影響を受けづらく、時系列データの本来の特徴をよく表せる。しかし、その分、時系列変動が大きく、値がなめらかにならない。