LoginSignup
5
5

More than 3 years have passed since last update.

FacebookのProphetを使ってダウ工業平均を予測してみた。

Posted at

参考リンク:ドキュメント

Prophetとは

ProphetはFacebookが開発した時系列データを予測するツールです。速いのと完全自動が売りらしいです。ちょっと使ってみましょう。

対象データ

1948年からの日足のダウ工業平均株価を使用します。

インストール

pip install fbprophet
import fbprophet
fbprophet.__version__
#'0.6'

データのインポート

形式は、columns=["ds", "y"]である必要があります。

ds y
18356 2020-04-23 23515.26
18357 2020-04-24 23775.27
18358 2020-04-27 24133.78
18359 2020-04-28 24101.55
18360 2020-04-29 24633.86
18361 2020-04-30 24345.72
18362 2020-05-01 23723.69
18363 2020-05-04 23749.76
18364 2020-05-05 23883.09
18365 2020-05-06 23664.64
18366 2020-05-07 23875.89
18367 2020-05-08 24331.32

Prophet objectのインスタンスを作成し、fitさせる。

m = Prophet(daily_seasonality=True)
m.fit(df)

時系列データの頻度が一日単位ではなく、一時間単位などであれば daily_seasonality=Trueにしておく。

将来のデータフレームの作成する。

future = m.make_future_dataframe(periods=365)
future.tail()
ds
18728 2021-05-04
18729 2021-05-05
18730 2021-05-06
18731 2021-05-07
18732 2021-05-08

予測する。

forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
ds yhat yhat_lower yhat_upper
18728 2021-05-04 25240.993067 23775.034765 26676.954454
18729 2021-05-05 25241.812462 23873.631394 26743.879477
18730 2021-05-06 25248.372948 23662.176440 26658.218006
18731 2021-05-07 25251.123010 23590.352159 26721.447848
18732 2021-05-08 25258.034603 23780.066094 26742.194673

ここで、変数の説明をしておくと
- yhat : 予測値
- yhat_lower : 予測値の誤差の下限
- yhat_upper : 予測値の誤差の上限

プロットする。

fig1 = m.plot(forecast)

plot_with_prophet.png

大体誤差の範囲に収まっている。

個別要素を見る。

fig2 = m.plot_components(forecast)

plot_components.png

確か、相場には "Sell in May and go away, and come on back on St. Leger's Day."(5月に株を売って、そしてセントレジャー・デー(9月中旬)まで戻って来るな)という格言があります。これはなんかありそうですね(笑)

こちらが基本的な使い方でより詳細はドキュメントの方をご覧ください。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5