ストックドッグ

KatoTakahiro。金融系の会社で働くSEが株やPython、その他諸々について書いています。サービスも運営してます→http://fmbrain.work

予測精度向上のための次なる手 〜クラウドファンディングはじめました〜

f:id:doz13189:20170120173259j:plain

目次

この記事は前回の続き

前回までのあらすじはこの記事。

doz13189.hatenablog.com

前回のシミュレーション結果を踏まえて、熟考と改善を重ねた結果

予測精度が上がりました!

予測する銘柄数を大幅に減らしました

336銘柄ある中から、予測しやすそうな銘柄のみを厳選し...

さらに説明変数の選び方も少しいじって...

株価の騰落予測を過去12ヶ月分シミュレーションし直してみると...

なんと62.78%まで向上しました。

予測している銘柄少なすぎる問題が発生

前回までは、300ちょいある中からだいたい60銘柄ほどをチョイス。

今回は、さらに減って10ちょいくらいの銘柄数しか予測できていません。

厳選した分は、上がったので良かったですが...

シミュレーション結果

予測月 : 12 月
対象銘柄数 : 6
予測的中銘柄数 : 4
予測精度:66.6%

予測月 : 11 月
対象銘柄数 : 8
予測的中銘柄数 : 5
予測精度:62.5%

予測月 : 10 月
対象銘柄数 : 15
予測的中銘柄数 : 11
予測精度:73.3%

予測月 : 9 月
対象銘柄数 : 7
予測的中銘柄数 : 4
予測精度:57.1%

予測月 : 8 月
対象銘柄数 : 11
予測的中銘柄数 : 6
予測精度:54.5%

予測月 : 7 月
対象銘柄数 : 12
予測的中銘柄数 : 4
予測精度:33.3%

予測月 : 6 月
対象銘柄数 : 11
予測的中銘柄数 : 5
予測精度:45.4%

予測月 : 5 月
対象銘柄数 : 15
予測的中銘柄数 : 12
予測精度:80.0%

予測月 : 4 月
対象銘柄数 : 21
予測的中銘柄数 : 16
予測精度:76.1%

予測月 : 3 月
対象銘柄数 : 9
予測的中銘柄数 : 3
予測精度:33.3%

予測月 : 2 月
対象銘柄数 : 8
予測的中銘柄数 : 7
予測精度:87.5%

予測月 : 1 月
対象銘柄数 : 6
予測的中銘柄数 : 5
予測精度:83.3%

平均予測精度は、62.78%

はてなのテーブル作るのめんどくさすぎるので、プログラムで出力している形のまんまで出しました。

いぜん安定せず...

前回のシミュレーション結果を見ると、ボラティリティの大きい月の予測精度が比較的悪かった印象がありました。

例えば、1月、3月、6月、7月、11月...


何かしらのイベントによる影響が株価を動かしていたこともあり、予測はしづらい月であることは間違いないのですが、そういった月も予測できてやっとはじめて実用的になると思うので、何とか工夫して予測精度が改善できないかを考えていました

なので、説明変数を仕分けしながらボラティリティが大きい時に効くものをチョイスして、ランダムフォレストのモデルを構築しなおしました。


予測精度は改善はしたのですが、予測のしづらい月は相変わらず予測精度50%を切る結果となりました。

最近は、新しいデータを加えるというよりかは、中身のアルゴリズムをいじって改善を試みています。

しかし、今持っているデータでは限界かな、と思えるような結果しか出ないです...

結局、今回もボラティリティが大きい月は50%を下回る予測精度しか出なかったです。(前回、50%を下回った月とほぼ同月)

クラウドファンディングはじめました

SNS等では告知しているのですが。

camp-fire.jp

四季報yahoo!ファイナンスVIP倶楽部のデータが使いたくて、その資金を集めるためにクラウドファンディングをはじめました。

予測精度向上のための次なる手です。

資金が集まらなくて苦労はしていますが...

もし、よければご支援下さい涙

誰かァァァあぁ、支援をぉぉ涙涙涙

おまけ

空き時間を見つけては、「株価 機械学習」とかいろんなワードでググったり、twitterで検索しながら何か参考にできる情報がないかを探索しています。

f:id:doz13189:20170120172407p:plain

このツイートを見つけて、めちゃめちゃ共感しちゃいました。

株価予測をするときに、「未来のデータを参照」はもうホントあるある探検隊です笑

一回私もやらかしましたからね...

見つけた時の絶望感半端ないです。

pandasでデータをくっつけるときによく起こりがちな事故なんですよね。


それからは、DataFrame同士をくっつける時に、いっしょに日付データも入れるようにして再発防止をしています。

なので、統合したDataFrameはくっつけた分だけ日付データがあります笑

ただ、目視での確認がとてもしやすいです。

ドルと日経平均とユーロをくっつけたDataFrameはこんな感じです。

f:id:doz13189:20170120173820p:plain


今作っているデータには未来のデータ参照はおそらくないと思います。(おそらく)(何回も確認しています)

未来のデータを参照した時って、めっちゃ安定するんですよね、精度が。

そういった意味では、今回のシステムの精度は分散激しいし、むしろ50%下回っている月もあるのでかえってリアリティ増しているのかなぁなんて思っています。