コンサルティングファームで働く現役データサイエンティストの視点から、ビジネスに使える最新のアルゴリズムを選んで紹介する本特集。今回は「時系列分析」で有用なアルゴリズムを3種類紹介しよう。米Google(グーグル)や米Meta(メタ)が開発した最新の手法がお薦めだ。
分類 | アルゴリズム | 取り上げる回 |
---|---|---|
教師なし学習 | k-means | 第1回 |
教師なし学習 | 主成分分析 | 第1回 |
教師なし学習 | 潜在クラス分析 | 第1回 |
教師あり学習 | LightGBM | 第2回 |
教師あり学習 | ベイズモデリング | 第2回 |
因果推論 | Causal Forest | 第2回 |
時系列分析 | Prophet | 今回 |
時系列分析 | ベイズ構造時系列モデル | 今回 |
時系列分析 | Temporal Fusion Transformer | 今回 |
最適化計算 | 混合整数最適化 | 第4回 |
時系列分析
ビジネスでデータサイエンスを活用するシーンとして、過去データを使って将来を予測するタイプの問題がある。商品販売数や店舗売上高など、折れ線グラフを使って表現するようなデータ(時系列データ)に基づいた時系列分析だ。過去の販売データに基づいて翌月の発注量を決めたり、3年後など中長期の計画を策定したりするのに使う。今回は、この時系列分析に活用しやすい3つのアルゴリズムを見ていこう。
Prophet
ポイント | 評価 |
---|---|
簡便性 | ★★★ |
汎用性 | ★★★ |
データ取得性 | ★★☆ |
可読性 | ★★☆ |
「Prophet」はFacebookを運営するメタが開発した時系列分析のアルゴリズムである。同社が2017年にProphetのソフトウエア(Python用とR用ライブラリーがある)をオープンソースソフトウエア(OSS)として公開して以来、時系列予測の分野で急速に広まった。今では「デイリーデータ(1日単位で記録されるデータ)の時系列分析には基本的にProphetを使う」と言っていいほど普及している。
Prophetは、ベイズ統計における推定方法に基づいてデータを自動的に構造化する。下図は時系列データを構造化して分解した例だ。
最初のグラフでは、中⻑期的なトレンドに基づいてデータが分解されている。直近ではトレンドは減少傾向にあり、今後も減少が続く見込みだと予測している。第2と第3のグラフは周期性に基づいてデータを分解したものだ。第2のグラフでは曜日による周期性を、第3のグラフでは週次や月次など季節的な周期性を考慮してデータを構造化している。
単に予測結果だけ出力するのではなく、予測根拠を説明する機能もある。データサイエンティストではない現場のビジネスパーソンが納得できる分析結果を提示しやすい。
Prophet最大の特徴は、その使いやすさにある。従来の時系列予測では「職人芸」と呼ばれるほど繊細な設定が必要なことが多かったが、Prophetはそうではない。Prophetが内蔵するデフォルトの設定が優れているため、たいていの日次データにうまく適合可能だ。Prophetにおける学習や予測も10行以下のコードで実行できる。そのため「まずは手持ちの時系列データで何かを予測してみたい」場合に、最もお薦めできるアルゴリズムだ。
Prophetで売上高を予測する場合、分析の基にできるのは過去の商品売上高データだけではない。「その商品に関連する広告費」など売上高データ以外の「外部データ」も利用可能だ。分析できる幅はとても広い。よほど奇抜なデータでない限り、日次データであればほとんどの場合で安定して良い成果が得られるはずだ。ただし広告費のような外部データを取り入れると、可視化がやや難しくなる場合がある。
用意するデータは日次データでありさえすればよいので、ほとんどの企業が何らかの形でProphetを活用できるだろう。ただし時系列予測において難しいのは、予測に使う外部データ(広告費など)については、将来の値も分かっている必要がある点だ。例えば過去の売上高データから、売上高が雨に依存すると分かったとする。ところが将来の天候データは正確には分からないため、時系列予測には使えない。天気予報が公開されているとはいえ、1週間後あたりから急速に精度が悪化するためだ。
したがって、将来予測に用いる外部データは、広告費など自社の意思で決められるデータを選ぶのが適切だろう。政府や金融機関などが公開している長期予測データを使う手もある。