売上などの時系列データには、周期性があります。
周期性の中で、期間の決まっているものを季節性と言ったりします。
例えば、1日単位の売上データであれば、週周期(7日間)や年周期(365.25日間)などです。
例えば、1時間単位の気温データであれば、日周期(24時間)や週周期(168時間)、年周期(8766時間)などです。
要は、複数の季節成分が混じっている時系列データは少なからずある、ということです。
今回は、「複数の季節変動成分のある時系列データ」というお話しをします。
時系列データの基本成分に分解する
時系列データ(原系列)は、主に以下の3つの変動成分で成り立っています。
- トレンド
- 季節
- 不規則
トレンド変動成分は、上昇傾向や下降傾向などです。
季節変動成分は、冒頭から話題に挙げている週周期や年周期のことです。
不規則変動成分は、トレンドと季節変動成分以外です。
要は……
原系列=トレンド変動+季節変動+不規則変動
……という感じです。上記は「加法(+)」モデルですが、「乗法(×)」モデルの場合もあります。
季節変動が複数あるとは……
原系列=トレンド変動+季節変動その1+季節変動その2+季節変動その3+不規則変動
……という感じです。上記は、季節変動が3つの場合です。
分解手法
この3つの成分に分ける手法は色々あります。
- トレンド
- 季節
- 不規則
STL(Seasonal-Trend Decomposition Procedure Based on LOESS)法などが有名です。
STL法などを使うと、通常は1つの季節変動しか分解できません。
では、季節変動が複数ある場合は、どうすれば分解できるのでしょうか?
複数の季節変動を許容する時系列モデルを活用する
時系列解析系の数理モデルの中には、複数の季節変動を扱えるものがあります。
例えば、ProphetやTBATS、STR などの時系列モデルです。これらの数理モデルは、複数の季節変動を扱えます。
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時間周期)
気温ですから、朝・昼・晩などでは気温は変化しますし、春・夏・秋・冬で気温は変化します。
分解例
例えば、次のような順番で分解します。
- 原系列から日周期の季節変動成分を分解(STL法を利用)
- 原系列から日周期の季節変動成分を取り除き新たな時系列データを生成
- その新たな時系列データから年周期の季節変動成分を分解(STL法を利用)
これでも、2つの季節変動成分に分解できます。
最終的には……
- トレンド変動
- 日周期の季節変動
- 年周期の季節変動
- 不規則変動
……に分解されます。
今回のまとめ
今回は、「複数の季節成分のある時系列データ」というお話しをしました。
売上などの時系列データには、周期性があります。
周期性の中で、期間の決まっているものを季節性と言ったりします。
例えば、1日単位の売上データであれば、週周期(7日間)や年周期(365.25日間)などです。
例えば、1時間単位の気温データであれば、日周期(24時間)や週周期(168時間)、年周期(8766時間)などです。
要は、複数の季節成分が混じっている時系列データは少なからずある、ということです。
複数の季節成分が混じっている時系列データから季節変動成分を分解する方法はいくつかあります。
- 複数の季節変動成分を前提にした数理モデルで分解する
- 従来の季節変動成分を1つ分解する方法を繰り返し使い分解する
具体的にデータを使ってどうやるかについては、別の機会にお話しします。