第285話|複数の季節変動成分のある時系列データ

第285話|複数の季節変動成分のある時系列データ

売上などの時系列データには、周期性があります。

周期性の中で、期間の決まっているものを季節性と言ったりします。

例えば、1日単位の売上データであれば、週周期(7日間)年周期(365.25日間)などです。

例えば、1時間単位の気温データであれば、日周期(24時間)週周期(168時間)年周期(8766時間)などです。

要は、複数の季節成分が混じっている時系列データは少なからずある、ということです。

今回は、「複数の季節変動成分のある時系列データ」というお話しをします。

時系列データの基本成分に分解する

時系列データ(原系列)は、主に以下の3つの変動成分で成り立っています。

  • トレンド
  • 季節
  • 不規則

トレンド変動成分は、上昇傾向や下降傾向などです。

季節変動成分は、冒頭から話題に挙げている週周期や年周期のことです。

不規則変動成分は、トレンドと季節変動成分以外です。

要は……

原系列=トレンド変動+季節変動+不規則変動

……という感じです。上記は「加法(+)」モデルですが、「乗法(×)」モデルの場合もあります。

季節変動が複数あるとは……

原系列=トレンド変動+季節変動その1+季節変動その2+季節変動その3+不規則変動

……という感じです。上記は、季節変動が3つの場合です。

分解手法

この3つの成分に分ける手法は色々あります。

  • トレンド
  • 季節
  • 不規則

STL(Seasonal-Trend Decomposition Procedure Based on LOESS)などが有名です。

STL法などを使うと、通常は1つの季節変動しか分解できません。

では、季節変動が複数ある場合は、どうすれば分解できるのでしょうか?

複数の季節変動を許容する時系列モデルを活用する

時系列解析系の数理モデルの中には、複数の季節変動を扱えるものがあります。

例えば、ProphetTBATSSTR などの時系列モデルです。これらの数理モデルは、複数の季節変動を扱えます。

STL法のようにもっと手軽にという場合には、STLを拡張したMSTL(Multiple Seasonal-Trend decomposition)法があります。

ここでは理論的な説明は割愛します。興味のある方は、元の論文を見て頂ければと思います。非常にシンプルなものです。

Bandara, Kasun & Hyndman, Rob & Bergmeir, Christoph. (2021). MSTL: A Seasonal-Trend Decomposition Algorithm for Time Series with Multiple Seasonal Patterns.
https://www.researchgate.net/publication/353544289_MSTL_A_Seasonal-Trend_Decomposition_Algorithm_for_Time_Series_with_Multiple_Seasonal_Patterns

従来の手法で頑張る

今紹介した方法ではなく、従来のSTL法などで頑張り季節変動成分を分解していく、という方法もあります。

それは、季節変動成分の数だけ、STL法を繰り返し適応し季節変動成分を分解していく、という方法です。

今、1時間単位の時系列データ、例えば「気温データ」があったとします。

気温ですから、次の2つの季節変動成分が考えられます。

  • 日周期(24時間周期)
  • 年周期(8766時間周期)

気温ですから、朝・昼・晩などでは気温は変化しますし、春・夏・秋・冬で気温は変化します。

分解例

例えば、次のような順番で分解します。

  1. 原系列から日周期の季節変動成分を分解(STL法を利用)
  2. 原系列から日周期の季節変動成分を取り除き新たな時系列データを生成
  3. その新たな時系列データから年周期の季節変動成分を分解(STL法を利用)

これでも、2つの季節変動成分に分解できます。

最終的には……

  • トレンド変動
  • 日周期の季節変動
  • 年周期の季節変動
  • 不規則変動

……に分解されます。

今回のまとめ

今回は、「複数の季節成分のある時系列データ」というお話しをしました。

売上などの時系列データには、周期性があります。

周期性の中で、期間の決まっているものを季節性と言ったりします。

例えば、1日単位の売上データであれば、週周期(7日間)年周期(365.25日間)などです。

例えば、1時間単位の気温データであれば、日周期(24時間)週周期(168時間)年周期(8766時間)などです。

要は、複数の季節成分が混じっている時系列データは少なからずある、ということです。

複数の季節成分が混じっている時系列データから季節変動成分を分解する方法はいくつかあります。

  • 複数の季節変動成分を前提にした数理モデルで分解する
  • 従来の季節変動成分を1つ分解する方法を繰り返し使い分解する

具体的にデータを使ってどうやるかについては、別の機会にお話しします。