時系列予測ライブラリProphetについて

水晶玉

 

別記事「重回帰分析で発生する多重共線性に対処してみた」の中で、重回帰分析を用いてスーパードライの出荷数量の予測を行いました。

予測を行う過程では、説明変数の選択、コレログラムを用いた自己相関性の確認、多重共線性の低減など、予測結果を求めるまでにいくつもの過程があり、何度も重回帰分析を回しました。

しかし、世の中には、時系列予測を楽々やってくれるライブラリが存在します。

 

今回の記事では、

  • 重回帰分析や統計学の知識がなくても時系列予測をしてみたい
  • 楽して時系列予測をしたい

 

という人に向けて、時系列予測ライブラリの「Prophet」を紹介していきます。

 

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を用いた時系列予測の流れは下記の通りです。

  1. ライブラリ設定
  2. CSVファイル読み込み
  3. Prophetが扱えるフォーマットへ変換させるための前処理
  4. データの学習
  5. 予測
  6. 結果のグラフ描画

 

この6つの工程を、たった20行程度のコーディングで実装できちゃいます

分析結果を踏まえて、パラメータを変えるなどのようなイタレーションの必要もありません。

強いて言えば3の前処理の部分だけは、別の分析で用いたCSVをProphet用のフォーマットに変換させる必要があったため少し手間でした。

ですが、重回帰分析で時系列予測をしようとした際はかなり時間がかかりましたが、Prophetでやるとあっさり時系列予測ができちゃいます

 

ということで、Prophetの時系列予測を行った結果を見ていきましょう。

prophetによるビール出荷数量予測結果

グラフの見方は、

  • 実際の出荷数量:黒い点
  • 予想の出荷数量:青い線
  • 80%信頼区間:水色の帯線

となります。

ところどころ信頼区間の範囲を超えている点(実際の出荷量)がありますが、それなりにフィットしているようにも見えます。

 

時系列分析で抽出された全体のトレンド(上図)と年周期のトレンド(下図)も次のような形で確認することができます。

prophetによるビール出荷数量トレンド

全体のトレンドより、スーパードライの出荷量が右肩下がりの傾向にあることが一目瞭然で分かります。

 

このような感じで時系列予想を行うことが出来ましたが、少ない記述で、Matplotlibを使うことなくグラフの描画までできてしまう、Prophetライブラリは大変便利なライブラリと言えます

PythonやRの環境でお試しで時系列予想をやってみたいという人であればお勧めできるライブラリです。

じゃあ

 

関連記事

重回帰分析で発生する多重共線性に対処してみた

重回帰分析で将来のビール出荷量を予測してみた

ABOUTこの記事をかいた人

パラレルキャリア研究会創設メンバー 岩手県出身。東北大学工学部卒、同大学院工学研究科修了。半導体メーカーに入社後、エンジニアとして半導体製品の企画・開発に10年以上従事。独学&パラ研の場でPythonや統計学を学習中。1児のパパ。趣味は日本酒、ロードバイク。中小企業診断士。