別記事「重回帰分析で発生する多重共線性に対処してみた」の中で、重回帰分析を用いてスーパードライの出荷数量の予測を行いました。
予測を行う過程では、説明変数の選択、コレログラムを用いた自己相関性の確認、多重共線性の低減など、予測結果を求めるまでにいくつもの過程があり、何度も重回帰分析を回しました。
しかし、世の中には、時系列予測を楽々やってくれるライブラリが存在します。
今回の記事では、
- 重回帰分析や統計学の知識がなくても時系列予測をしてみたい
- 楽して時系列予測をしたい
という人に向けて、時系列予測ライブラリの「Prophet」を紹介していきます。
これさえあれば誰でも将来予想ができようになる?時系列予測ライブラリProphet
Prophetとは?
「Prophet(プロフィット)」は、Facebook社が開発した時系列予測のOSS(Open Source Software )ライブラリです。(公式サイトリンク)
Prophetの特徴
- 時系列のトレンドに基づいた時系列分析が設定なしで可能
- 時系列のトレンドの変化点の検出が可能
- 時系列分析のチューニングも可能(四半期季節性分析や祝日設定など)
- PythonやRで利用可能
- 誰でも無償で利用可能
prophetは預言者という意味です。まさに時系列予測をするにふさわしいライブラリ名です。
なお、AnacondaのPython環境には「Prophet」が標準搭載されていないため、別途インストールが必要となります。インストール方法は公式サイトなどで紹介されています。
Prophetにはチュートリアルページがある
「公式サイト」で、クイックチュートリアルが提供されています。
もし、Prophetを試してみたいという場合は、まずはこのチュートリアルを試してみるのが良いかもしれません。
なお、チュートリアルの内容は、元NFLプレイヤーのペイトン・ウィリアムズ・マニング氏のWikipediaのPV(ページビュー)数の時系列データを用い、学習し予測するというものです。
これは余談ですが、私が学生時代だった2000年代、プログラミング学習のために提供されるデータは、練習のために作られた架空のデータであることがほとんどだったように記憶しています。
しかし、ここで紹介したチュートリアルもそうですが、データサイエンスの学習関連で提供されるデータとして、リアルに存在するデータを扱っているものをよく見かけます。
このリアルのデータで学べるということが、飽きずに学び続けられる理由のひとつなのかもしれません。
スーパードライの出荷量をProphetに予測させてみた
最後に、Prophetを使ってスーパードライの出荷量を予測させてみたので、その結果を紹介します。
Prophetを用いた時系列予測の流れは下記の通りです。
- ライブラリ設定
- CSVファイル読み込み
- Prophetが扱えるフォーマットへ変換させるための前処理
- データの学習
- 予測
- 結果のグラフ描画
この6つの工程を、たった20行程度のコーディングで実装できちゃいます。
分析結果を踏まえて、パラメータを変えるなどのようなイタレーションの必要もありません。
強いて言えば3の前処理の部分だけは、別の分析で用いたCSVをProphet用のフォーマットに変換させる必要がある点がひと手間だったでしょうか。
ですが、重回帰分析で時系列予測をしようとした際はかなり時間がかかりましたが、Prophetでやるとあっさり時系列予測ができちゃいます。
ということで、Prophetの時系列予測を行った結果を見ていきます。
グラフの見方は、
- 実際の出荷数量:黒い点
- 予想の出荷数量:青い線
- 80%信頼区間:水色の帯線
となります。
ところどころ信頼区間の範囲を超えている点(実際の出荷量)がありますが、それなりにフィットしているようにも見えます。
時系列分析で抽出された全体のトレンド(上図)と年周期のトレンド(下図)も次のような形で確認することができます。
全体のトレンドより、スーパードライの出荷量が右肩下がりの傾向にあることが一目瞭然で分かります。
ということで、ここまで時系列予想を行うまでを出来ましたが、少ない記述で、グラフの描画まで出来てしまうProphetは大変便利なライブラリと言えそうです。
まとめ
今回の記事では、「これさえあれば誰でも将来予想ができようになる?時系列予測ライブラリProphet」というテーマで、Prophetライブラリの紹介と、Prophetライブラリを用いたビールの出荷量予測の行ってみた結果を紹介していきました。
Prophetは少ない記述量で、回帰分析などの知識がなくても、将来予測を行いグラフ出力までの行ってくれる、大変便利なライブラリであることが分かりました。
簡単に扱えることはいいことですが、実際の統計学の知識を用いて求めた結果と比べた場合、どの程度結果が変わってくるのか、気になりませんか?
ということで、次の記事では、Prophetの予想結果と回帰分析で求めた予想結果を比較してみた結果も紹介してみたいと思いますので、興味がある方はそちらの記事もチェックしてください。
じゃあ