どういう話かというと,時系列解析は色々ややこしくて良くわからないけど,とりあえずデータは持っているので試してみたいといったときにオススメのライブラリProphet1 2の紹介です.
Prophetとは
- Facebook謹製の時系列解析ツール
- 時系列解析に詳しくなくてもデータを突っ込むだけで解析してくれる.
- RとPythonで使える.
性能を発揮させやすい条件
- 数ヶ月(可能なら1年)の時系列データがある
- イベントのタイミングは既知
すごいところ
- 欠損値や異常値があっても大丈夫
- 傾向の変化にも対応してくれる.
- 熟練した分析者と同程度の性能をデフォルト値で出せたこともある.
- 時系列解析が苦手な人でも使える.
Prophetの仕組み
下記4つの重ね合わせによって予測.
- 自動検出した傾向の変化点
- 年間の大まかな流れ
- 週ごとの流れ
- ユーザー提供のイベント情報
インストール
pip install fbprophet
チュートリアル
アメフト選手のペイトン・マニング氏3のWikipediaの将来のページ閲覧数の予測を題材としています.
wget https://raw.githubusercontent.com/facebookincubator/prophet/master/examples/example_wp_peyton_manning.csv
import pandas as pd
import numpy as np
from fbprophet import Prophet
df = pd.read_csv('../examples/example_wp_peyton_manning.csv')
df['y'] = np.log(df['y'])
df.head()
学習
データをもとに学習する.
m = Prophet()
m.fit(df);
予測データの準備
将来365日分とか出したかったら下記のように書く.
future = m.make_future_dataframe(periods=365)
future.tail()
予測結果の表示
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
将来の予測推移
m.plot(forecast);
成分ごとの表示
m.plot_components(forecast);
次の記事 「Prophetでビットコインの価格推移を予測してみる」です.
References
-
Taylor, Prophet: forecasting at scale, 2017. ↩