株価予測とかいう無理ゲー
しばらくサボっていました。
何もしてないというワケではなく、株価の自動取得のコードをメンテしたりしていました。
今は上場廃止や新規上場にもしっかりと対応してくれるものになって、ここ1~2週間安定して稼働してくれています。
さて、今回は前回の宣言通りに、東証一部上場の各企業の株価を分析していきます。
日経平均のリターン分析
一瞬で宣言したことを覆していますが、まずは「なぜ日経平均ではなく東証一部上場の各企業の株価を分析したいのか?」について触れておきます。
この記事では日経平均株価とそのテクニカル指標を用いて簡単な株価予測を行いました。
非常に上手くいっていますが、実は自分でも半信半疑だったので後日再検証したところ、条件が少しでも違うと上手くいかないことが判明しました。
ただでさえあまり利益が上がるモデルとは言えないのに、加えて安定した運用ができないとなると実用的には最悪です。バックテストの重要さを実感しました。
実用上はデータセットを変えても精度が出る頑健なモデルでなくてはなりません。
そこで、前回用いた特徴量は適切だったのかについて以下の方法で簡単に検証します。
本来ならば最初にやっておくべきなのですが、「予測に使用される特徴量」と「リターン」の間に何か関係があるのか、PCAを用いて簡単に可視化してみました。
こちらが可視化結果です。本来であればリターンがプラスとマイナスでほんの少しでも傾向があればと思っていたのですがこのデータから傾向を掴めって方が無理ってモンです。
…という経緯があって、各社の平均を取って情報量が少なくなった日経平均よりも、生データから予測した方がリターンの傾向があるに違いないと思い、冒頭に言っていたように各企業の株価を分析することにしました。
会社規模とリターンの関係
株の値動きと会社規模には何らかの特徴があるはず、という直感はあると思います。
そこで2019年の終値の変化率をPCAにより2次元に圧縮しました。
最悪です。
会社規模と値動きにはなんの相関も見られない気がします。
そんなこと無いと思うんですが、結果は結果として受け止めましょう。
業種とリターンの関係
東京証券取引所では各企業は33業種、17業種の区分で分類されており、業種コードが割り当てられています。
業界特有の値動きなどは直感的にはありそうですので、こちらも先程と同様に可視化します。
今回は17業種コードの方を用いました。
こちらは先程よりはマシですが、やはりごちゃごちゃしています。
- 小売(14)と情報通信(10)が左上に多く分布している。
- 金融(15)が右下にまとまっている。
- 鉄鋼・非鉄(7)、機械(8)、電機・精密(9)が同じような分布になっている。
など、一応説明がつきそうな分布にはなっているかと思います。
…本当ですかね?
まとめ
さて、PCAを用いた簡単な可視化で株価予測が随分な無理ゲーであることがわかってきました。
割と心が折れていますが、次回はテクニカル指標の深堀りと、できればテクニカル指標を考慮して今回の結果がどのように変化するのかを検証したいと思っております。