Facebookが開発した時系列予測モデルProphetで可能な4つのタイプの分析

時系列データは、ビジネスの世界で最も多く扱われているタイプのデータです。

しかし、その活用となると、ラインチャートで指標の推移を可視化して、その上下に注目する、あるいは、設定したターゲットを満たしているかを確認するだけにとどまってしまっていることも少なくありません。

一方で、時系列のデータが手元にあれば、将来の指標を予測したり、トレンドの変化があったタイミングを探索したり、季節性の影響を分析したりすることで、ビジネスにとってより有益な気付きを得られます。

そこで、今回はFacebookが自らのビジネスの改善のために開発した、時系列予測のProphetを使うことで、可能な4つのタイプの分析を紹介いたします。

# Prophetについて

ProphetはFacebookが開発した時系列予測のモデルで、専門知識がなくても、以下のような日付と指標を組み合わせた時系列のデータさえあれば、注目している指標の将来の値を簡単に予測できるモデルで、その精度の高さと扱いやすさからビジネスの現場での活用が広がっています。（Prophetの活用事例につきましては、[こちら](https://exploratory.io/tag/?q=tag%3AProphet%20tag%3A%22%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E4%BA%8B%E4%BE%8B%22&language=all)から確認いただけます）

![image-20240819233046355.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/0316e5b4-ed2a-d4cc-34bb-1de5cbf6d960.png)

また、Prophetは指標の推移から、季節性（周期性）、トレンドの情報に加えて、別の指標の推移の情報を抽出してモデルに組み込み、それぞれを足し上げて、高い予測精度を実現しているのですが、それらの情報自体が、有益な気付きを与えることも少なくなく、今回紹介する内容もそれら情報に関連する内容となります。

# 1. 将来の予測

例えば売上の推移をモニターしているときに、人間が勘や経験をもとに、それらの指標の将来を予測していると、予測値と実際の値が大きくずれしまったり、予測が属人化してしまい、誰がやっても同じような結果を得られない問題が生じてしまいます。

一方で、将来の売上について、精度の高い将来の予測ができた場合はどうでしょう。

仮に期待している目標に足りず、どの程度足りないのかまで推定できるようであれば、結果が出る前に事前に目標を達成するための行動を起こせるだけでなく、どの程度の結果をもたらせば目標を達成できるかがわかるので、そちらに応じた行動を考え始めることができます。

例えば、以下のように推移する月ごとの売上のデータがあったとします。

![image-20240819233140839.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/77e4b773-1e71-9ce7-6b6e-99bac0bae40f.png)

このデータを見ると毎年、年末になると売上が大きくなる傾向を確認できます。

![image-20240819233655225.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/1b67ef72-1db0-bff2-30e9-84e322171eda.png)

また、それだけでなく、毎年の売上が増えているような傾向も確認できます。

![image-20240819234039482.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/ac27c9a2-a34a-7b6c-06d0-b1471929ed3b.png)

そこで、Prophetはこういった傾向を考慮したうえで、将来の予測を行います。

![image-20240819234701371.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/ab841d5a-6b0c-5c1d-4561-305788635223.png)

実際、上記のデータを使って、Prophetで時系列予測を行うと以下のような精度の高い結果を得られます。

![image-20240819234748015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a0e2c9bc-f630-de63-2c60-d02de1734bf4.png)

なお、上記の画像は月ごとの指標の予測ですが、予測する日付の単位は「日」「週」「月」「年」と自由に設定が可能で、さらに予測する期間も自由に設定が可能です。

# 2. トレンドの分析

Prophetは、予測をするときに「**トレンド**」という大局的な指標の推移の傾向の情報を抽出します。

![image-20240819235739914.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/63cf8023-7e66-595a-601c-4fd74fa3b00d.png)


トレンドの情報に注目すると大局的なトレンドの上下を理解することができ、注目している指標が、過去と比較した際、増加しそうなのか、あるいは減少することになりそうなのかを理解できます。

あるいは、大局的なトレンドに変化があった場合、その変化率は赤いバーで表されます。例えば、下記のチャートでは、2022年の11月にトレンドが37%程変わっていることを確認できます。

![image-20240819235628064.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/0ba65506-a725-8152-2a2d-7b6e331a4ebe.png)

こういった情報をもとに、例えば、自分達のビジネスプロセスの変更の、ビジネスに対する影響や、マーケットにおける変化をスピーディーにキャッチして、その変化に対応することができるようになります。

# 3. 季節性（周期性）の分析

Prophetは、予測した指標の日付の単位に応じて、データから「**季節性（周期性）**」の情報を抽出することが可能です。

例えば、日単位で指標を予測したときには、以下のように、週周期（曜日）、年周期（月）の周期性の情報を抽出するため、曜日、あるいは月単位でどういった季節性の特徴があるのかを理解でき、自分達のモニターしている指標がどのような周期性を持っているのかを理解することができます。

**週周期**

![image-20240819235904900.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a49d573c-7ebd-29eb-42c6-87871870417d.png)


**年周期**

![image-20240820000138226.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/78b85d6b-6f27-7433-86c3-97340468d969.png)

このような情報をもとに、その周期性をもとに人員配置を最適化することや、ビジネス上の施策を実行するタイミングの参考にすることが可能です。

# 4. 予測に影響を与える指標の重要度の分析

Prophetでは、「外部予測変数」と呼ばれる追加情報を利用して、予測の精度を改善させることも可能です。

例えば、eコマースなどのビジネスで「売上」の予測に興味があった場合、「オンライン広告」のようにお客様の購入に直接働きかけるような広告には、予算を増やすほど、売上が増えるような、売上との「相関関係」が見られます。

![image-20240820000553038.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/1e9e40f8-99db-9ef6-af79-72c205d71a0a.png)

このような指標を「外部予測変数」として、Prophetに組み込み、予測精度を高めることができるのですが、その際、これまでに説明してきた、季節（周期）性や、外部予測変数を加味したうえで、予測への影響が一番大きい変数や周期性を「変数重要度」として、確認することも可能です。

![image-20240820002747017.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/39b6eb52-6135-d566-2ab6-55934a5591b7.png)

このような分析をもとに、予測への影響がより大きい指標を参考に、注力すべき領域に関するヒントを得ることが可能です。

# 自分のデータで試してみたい！

今回は、時系列予測モデルのProphetを使って、実施すべき4つの分析を紹介しました。

Prophetは時系列の指標のデータがあれば、専門的な知識がなくても簡単にモデルを構築し、将来の指標を予測することができるモデルです。

ただし、自分のデータを使ってProphetを実行するためには、コードを書く必要があったり、あるいは、今回の記事で紹介をしたような分析をするためには、モデルから、必要な情報を抽出して、可視化をする必要があります。さらに、別の課題として、Prophetに投入するためのデータをきれいにする必要もあります。そこで、記事内のスクリーンショットで利用している、データの加工、可視化、分析、レポーティングのためのUIツールの[Exploratory](https://exploratory.io/?utm_campaign=4-text-analysis&utm_medium=blog&utm_source=qiita)を利用することで、UIを通してそれらの処理を実行することが可能です。

なお、ご自身のデータを使って、Prophetを試された方は、サンプルデータ付きでProphetを試せる情報も公開しています。

https://exploratory.io/note/exploratory/Prophet-rZS5nfn3?utm_campaign=4-analytics-from-prophet&utm_medium=blog&utm_source=qiita

Exploratoryは下記のリンクより無料トライアルが可能ですので、ぜひお試しください。

https://exploratory.io/?utm_campaign=4-analytics-from-prophet&utm_medium=blog&utm_source=qiita

# データサイエンスを体系的に学びたい！

実際のビジネスを改善していくためのヒントを得るためには、今回紹介したような分析手法を駆使するだけでなく、自分達が注目している指標の将来を予測したり、またはその裏にある因果関係に迫っていくための分析が欠かせません。

そこで、そういった分析手法を基礎から、そして体系的に学びたいという方向けに、データサイエンス・ブートキャンプ・トレーニングを9月に開催しますので、興味のある方はぜひご参加をご検討いただければと思います。

https://exploratory.io/training-jp?utm_campaign=4-analytics-from-prophet&utm_medium=blog&utm_source=qiita