株価予測における LightGBM と非線形特徴量についてのポエム
〜こんなことできたら面白そう〜
はじめに
最近、株価予測についていろいろ妄想しています。 もちろん、株価なんて未来が完全にわかるわけはないし、予測モデルを作ったからといって必ず儲かる保証なんてありません。 でも…「こういうアプローチなら、もしかして予測にちょっと安心感を持たせられるんじゃないか?」というアイディアがあるので、簡単にまとめて、今後実施してみようかと思います。
そのキーワードが LightGBM と 非線形な説明特徴量 です。 まだ一行もコードを書いていませんが、ここでいったんポエム的にまとめてみます。
なぜLightGBMなのか
- 非線形な関係を捉えるのが得意
株価は直線的じゃない動きが多く、上がったり下がったりと波のよう。
木構造のモデルはそういうカーブや閾値を自然に扱えるのが魅力です。 - 計算が軽い ヒストグラム方式と葉ごとの成長戦略で、大きなデータでも比較的高速。
- 特徴量の重要度がわかる 予測理由を後で振り返れるのが安心材料になりそう。
非線形な説明特徴量の妄想
もし作るなら、こういう特徴量を入れてみたいです。
- 移動平均乖離率:
- 株価が移動平均線からどれだけ離れているかを割合で示す指標
- RSI(Relative Strength Index):
- 一定期間の上げ幅と下げ幅のバランスから買われ過ぎ・売られ過ぎを測るオシレーター
- ボリンジャーバンド:
- 移動平均線の上下に標準偏差の帯(例: ±2σ)を描き、価格の振れ幅や異常値を捉える指標
- 決算発表日前後のダミー変数:
- 決算日の前後数日を1、それ以外を0とするフラグでイベント効果を表現
- ニュースやSNSのポジティブ/ネガティブスコア:
- テキスト感情分析により市場心理の向き(楽観・悲観)を数値化したもの
- 天気(気温や降雨など):
- 気象条件を数値特徴量化し、季節性や行動変容が市場に与える影響を補足
こういうのをLightGBMに食わせたら、線形回帰では見えないパターンが出るかもしれません。
安心感をどう作るか
予測って当たるか外れるか以上に、「なぜその結果なのか」が大事だと思っています。 そこで役立ちそうなのが SHAP値。
SHAP値は、協力ゲーム理論のShapley値に基づく「各特徴量が予測に与えた寄与度」を示す指標です。1件ごとの予測について、どの特徴量がどれだけ予測を押し上げ/押し下げたかを符号付きの数値で示します。
- 基本性質
- 加法性: ベースライン予測+各特徴量の寄与度の総和=モデルの予測
- 一貫性: 特徴量の影響が強まると寄与度が小さくはならない
- 活用例
- 個別説明: 1件の予測をforce plotで可視化
- 集約説明: 複数サンプルのsummary/beeswarmで重要特徴量を把握
- 依存関係: dependence plotで値と寄与の関係を確認
これを使えば、
「今回はRSIが低く、ニュースが好意的だったから上昇予測」
みたいに理由づけできます。 この説明があると、結果への納得感が増しそうです。
まとめ(というより決意表明)
- LightGBMは株価のような非線形データと相性が良さそう
- 非線形な説明特徴量を組み合わせれば、予測の説得力を少し高められるかもしれない
- SHAPで理由を見える化できれば、安心感もアップするはず
…と、ここまで書いておいてまだ試してはいません。 そのうち時間を見つけて、本当に作ってみたいですね。大まかな構成は以下のような感じかなと模索しています。