Python
Bitcoin
時系列解析
prophet

Prophetでビットコインの価格推移を予測してみる

More than 1 year has passed since last update.

Prophetで遊んでみる」の続きで,ビットコインの価格の推移を予測してみました.

Datasets

  • From: 2017-05-27
  • To: 2017-09-08

image.png

image.png

  • 最近のトレンドとしては上がり調子ということらしい.
  • 週ごとの傾向としては「火曜日に買って日曜に売れ」ということらしい.

胡散臭いので,もう少し調べてみる.

性能検証

  • 訓練データ: 2017-05-27 〜 2017-08-31
  • 検証データ: 2017-09-01 〜 2017-09-08

としてSMAPE1で性能を調べてみる.

image.png

image.png

  • 期間を少し変えるだけで,weeklyの傾向が変わってる.どゆこと??

changepoint_prior_scale=0.05(default)の場合

y_true = forecast["y"].values
y_pred = forecast["yhat"].values
print "FORECAST SMAPE: %.3f" % smape(y_true, y_pred)
# FORECAST SMAPE: 4.238

changepoint_prior_scale=0.01の場合

y_true = forecast["y"].values
y_pred = forecast["yhat"].values
print "FORECAST SMAPE: %.3f" % smape(y_true, y_pred)
# FORECAST SMAPE: 4.197

デフォルトよりは少し改善

検証データの期間中の中央値(参考)

y_median = np.asarray([np.median(y_true)] * len(y_true))
print "MEDIAN SMAPE: %.3f" % smape(y_true, y_median)
# MEDIAN SMAPE: 2.922

将来のデータの中央値なんてわかるわけないけど,目安として出す.
中央値を使ったほうが性能は良いので,まだまだ予測の改善は必要そう.

まとめ

  • Prophetを使ってビットコインの価格推移を予測
  • weeklyの傾向は,わずかな期間の変動で変わるので当てにならなさそう.
  • changepoint_prior_scaleの最適なパラメータ求めることで多少は改善される?

References