売上などの時系列データには、周期性があります。周期性の中で、期間の決まっているものを季節性と言ったりします。例えば、1日単位の売上データであれば、週周期(7日間)や年周期(365.25日間)などです。要は、複数の季節成分が混じっている時系列データは少なからずある、ということです。今回は「複数の季節変動成分のある時系列データ」というお話しをします。
【目次】
1.時系列データの基本成分に分解する
2.分解手法
3.複数の季節変動を許容する時系列モデルを活用する
4.従来の手法で頑張る
5.分解例
【この連載の前回:(その271)もっとも手軽なAIである異常検知へのリンク】
◆【特集】 連載記事紹介:連載記事のタイトルをまとめて紹介、各タイトルから詳細解説に直リンク!!
◆データ分析講座の注目記事紹介
1.時系列データの基本成分に分解する
時系列データ(原系列)は、主に以下の3つの変動成分で成り立っています。
トレンド変動成分は、上昇傾向や下降傾向などです。季節変動成分は、冒頭から話題に挙げている週周期や年周期のことです。不規則変動成分は、トレンドと季節変動成分以外です。
要は……
原系列=トレンド変動+季節変動+不規則変動
……という感じです。上記は「加法(+)」モデルですが「乗法(×)」モデルの場合もあります。
季節変動が複数あるとは……
原系列=トレンド変動+季節変動その1+季節変動その2+季節変動その3+不規則変動
……という感じです。上記は、季節変動が3つの場合です。
2.分解手法
この3つの成分に分ける手法は色々あります。
STL(Seasonal-Trend Decomposition Procedure Based on LOESS)法などが有名です。STL法などを使うと、通常は1つの季節変動しか分解できません。では、季節変動が複数ある場合は、どうすれば分解できるのでしょうか?
3.複数の季節変動を許容する時系列モデルを活用する
時系列解析系の数理モデルの中には、複数の季節変動を扱えるものがあります。例えば、ProphetやTBATS、STR などの時系列モデルです。これらの数理モデルは、複数の季節変動を扱えます。STL法のようにもっと手軽にという場合には、STLを拡張したMSTL(Multiple Seasonal-Trend decomposition)法があります。
ここでは理論的な説明は割愛します。
4.従来の手法で頑張る
今紹介した方法ではなく、従来のSTL法などで頑張り季節変動成分を分解していく、という方法もあります。それは、季節変動成分の数だけ、STL法を繰り返し適応し季節変動成分を分解していく、という方法です。今、1時間単位の時系列データ、例えば「気温データ」があったとします。
気温ですから、次の2つの季節変動成分が考えられます。
- 日周期(24時間周期)
- 年周期(8766時間周期)
気温ですから、朝・昼・晩などでは気温は変化しますし、春・夏・秋・冬で気温は変化します。
5.分解例
例えば、次のような順番で分解します。
- 原系...
列から日周期の季節変動成分を分解(STL法を利用)
原系列から日周期の季節変動成分を取り除き新たな時系列データを生成
その新たな時系列データから年周期の季節変動成分を分解(STL法を利用)
これでも、2つの季節変動成分に分解できます。
最終的には……
- トレンド変動
- 日周期の季節変動
- 年周期の季節変動
- 不規則変動
……に分解されます。