時系列データの基本操作(トレンド・平滑化)

時間とともに変化するデータから傾向と周期を読み取る

難易度 Lv 3 / 10想定時間:約20

できるようになること


はじめに:売上データの「2つの顔」

ある店舗のアイスクリームの月別売上(万円)を3年分記録したとします。36個のデータを折れ線グラフにすると、全体的に右肩上がりの傾向が見えます。しかしよく見ると、毎年7〜8月に売上が急増し、12〜2月に急減するパターンが規則的に繰り返されています。

このデータには2つの動きが混在しています。1つは長期的に売上が伸びている傾向、もう1つは毎年同じ季節に繰り返される波です。時系列分析の第一歩は、こうした複数の動きを分けて捉えることにあります。


時系列データとは

時系列データ(time series data)とは、同じ対象を一定の時間間隔で繰り返し観測して得られるデータのことです。株価の日次推移、月別の気温、四半期ごとのGDPなどがその例です。

時系列データには、横断データ(ある一時点で複数の対象を測定したデータ)とは異なる重要な特徴があります。それは、隣り合う観測値が互いに関連していることです。たとえば今月の売上が高ければ、来月の売上も高い傾向がある、というように前後のデータが独立ではありません。この性質を**系列相関(自己相関)**と呼びます。

補足

横断データの分析では「データが互いに独立」という前提がよく使われますが、時系列データではこの前提が成り立たないことが多いため、専用の分析手法が必要になります。


トレンド(傾向変動)

時系列データの長期的な動きを**トレンド(傾向変動)**と呼びます。売上が年々増加している、人口が減少し続けている、といった数年〜数十年にわたる方向性がトレンドです。

トレンドには大きく3つのパターンがあります。

トレンドの存在は、データの平均が時間とともに変化することを意味します。データの平均やばらつきが時間によらず一定である状態を「定常」と呼びますが、トレンドがある時系列は「非定常」です。統計的な分析や予測の多くは、データの性質が時間によらず一定であることを前提とするため、トレンドを除去して定常な状態に変換することが求められます。


季節変動

一定の周期で規則的に繰り返される変動を季節変動と呼びます。アイスクリームの売上が毎年夏に上がるように、季節や曜日に連動するパターンがこれに当たります。

季節変動の特徴は、周期が既知で安定していることです。月次データなら12か月周期、四半期データなら4四半期周期というように、繰り返しの長さが分かっています。

トレンドと季節変動は独立した動きです。「売上が伸びている(トレンド)」ことと「夏に売上が高い(季節変動)」ことは別の現象であり、分析では両者を分離して考えます。


移動平均:ギザギザを滑らかにする

時系列データから季節変動や短期的なノイズを取り除き、トレンドを浮かび上がらせる手法の1つが**移動平均(moving average)**です。

移動平均の考え方は単純です。各時点を中心に、前後の一定数のデータの平均を取ります。たとえば5項移動平均では、ある時点の値を、その前後2つずつ(合計5個)のデータの平均に置き換えます。

y^t=yt2+yt1+yt+yt+1+yt+25\hat{y}_t = \frac{y_{t-2} + y_{t-1} + y_t + y_{t+1} + y_{t+2}}{5}

具体的に見てみましょう。次のような月別売上データ(万円)があるとします。

| 月 | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 7月 | |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:| | 売上 | 30 | 28 | 35 | 40 | 50 | 55 | 70 |

3月の3項移動平均は次のように計算できます。

y^3=28+35+40334.3\hat{y}_3 = \frac{28 + 35 + 40}{3} \approx 34.3

5月の5項移動平均は、5月を中心とした前後2か月(3月〜7月)の平均です。

y^5=35+40+50+55+705=50.0\hat{y}_5 = \frac{35 + 40 + 50 + 55 + 70}{5} = 50.0

移動平均を適用すると、もとのデータのギザギザが滑らかになり、トレンドが見やすくなります。

窓幅の選び方

移動平均で何個のデータを平均するか(窓幅)は分析の目的によって変わります。

月次データから季節変動を除去したい場合は、周期に合わせて12項移動平均を使うのが一般的です。12か月分の平均を取ることで、1年周期の季節変動がちょうど相殺されます。

補足

12項のような偶数幅でそのまま平均を取ると、計算結果の中心時点が「半月分」ズレてしまいます。そのため実際のデータ分析では、ズレを補正する「中心化移動平均」という工夫が用いられます。

注意

移動平均には注意点があります。窓幅が mm のとき、データの先頭と末尾のそれぞれ (m1)/2(m-1)/2 個(mm が奇数の場合)の移動平均は計算できません。つまり、窓幅を大きくするほど多くの情報が失われます。特にデータが短い場合は、窓幅の選択に注意が必要です。


自己相関とコレログラム

時系列データでは、ある時点の値とその kk 時点前の値との間の「時間のずれ」をラグ kk と呼びます。そして、このラグ kk の値を持つ2時点間の相関係数をラグ kk の自己相関と呼びます。自己相関係数 rkr_k は、通常の相関係数と同じく 1-1 から 11 の範囲を取ります。

自己相関をラグの値に対してグラフにしたものを**コレログラム(自己相関関数プロット)**と呼びます。横軸がラグ kk、縦軸が自己相関係数 rkr_k のグラフです。

コレログラムの読み方にはいくつかの典型パターンがあります。

コレログラムは時系列データの「指紋」のようなもので、データがどのような構造を持っているかを視覚的に把握するために広く用いられます。


よくある誤解

注意
  • 誤解1:移動平均を取ればトレンドが分かる — 移動平均は短期的な変動を平滑化しますが、窓幅の選び方によってトレンドの見え方が大きく変わります。窓幅が不適切だと、季節変動が残ったりトレンドが過度に平滑化されたりします。移動平均の結果を鵜呑みにせず、窓幅の選択根拠を意識することが重要です。
  • 誤解2:自己相関が高い=因果関係がある — 自己相関は「前の値と今の値が似ている」という統計的な関連を示すだけであり、前の値が今の値の原因であることを意味しません。たとえばアイスクリーム店の月別売上で「先月高ければ今月も高い」という強い自己相関が見られたとしても、それは「先月たくさん売れたことが原因で今月も売れた」わけではなく、「夏に向かって気温が上がり続けている」という背後の共通要因(トレンドや季節性)が見せかけの自己相関を生み出しているだけかもしれません。

まとめ

時系列データは時間の順序に意味があり、隣り合う観測値が互いに関連している(系列相関がある)点で、横断データとは根本的に異なります。分析の基本は、データに含まれる変動を**トレンド(長期的傾向)季節変動(周期的な繰り返し)**に分けて捉えることです。

移動平均は、前後のデータを平均することで短期的な変動を取り除き、トレンドを浮かび上がらせる平滑化の手法です。窓幅を季節の周期に合わせることで季節変動を除去できますが、データの先頭と末尾の情報が失われる点に注意が必要です。

自己相関はデータの時間的な依存関係を定量化するもので、コレログラムによってトレンドや季節変動の存在を視覚的に確認できます。これらの基本操作は、「ARIMAモデルと自己相関」で学ぶより高度な時系列モデルの土台となります。