変動率0は異常値?:TARGET=0除去による株価予測AIの精度改善
実験1:TARGET=0の取扱いによる影響検証(V1 vs V2)
1. 検証目的
本節では、株価予測回帰モデル(XGBoost)における目的変数(以下、Target)として設定した「翌営業日のlog収益率」に対し、値が0となるデータを保持する場合(V1)と、それを除外する場合(V2)で、モデル性能や学習安定性にどのような差異が生じるかを検証する。特に、log収益率が0となるデータの存在が学習にどのような影響を及ぼすかを数理的に観察し、誤差関数(MAE, RMSE, R², MAPE)を用いた評価を行う。
2. 数学的背景
log収益率(log-return)は以下の式により定義される:
ここで
- 勾配がゼロに近くなりやすく、
- 分岐点の情報利得(Gain)に影響を与えやすく、
- 特定の特徴量が過剰に選択される原因
となる可能性がある。
3. 実験設計
対象銘柄は価格帯ごとに以下の代表的企業を選出し、1銘柄あたりV1とV2でモデルを構築した:
- Small Cap:ENEOS(5020.T)
- Medium Cap:トヨタ自動車(7203.T)
- Large Cap:キーエンス(6861.T)
また、各グループ内の5銘柄平均も参考値として導出し、比較対象とした。
評価指標には以下の4指標を使用:
- MAE(平均絶対誤差)
- RMSE(平方二乗平均誤差)
- R²(決定係数)
- MAPE(平均絶対パーセンテージ誤差)
4. 結果
個別銘柄:MAE比較
銘柄 | MAE (V1) | MAE (V2) |
---|---|---|
ENEOS | 0.0203 | 0.0215 |
トヨタ自動車 | 0.0532 | 0.0431 |
キーエンス | 0.1979 | 0.1008 |
グループ平均:R²比較
グループ | R² (V1) | R² (V2) |
---|---|---|
Small Cap | -97.12 | -260.13 |
Medium Cap | -14.75 | -3.15 |
Large Cap | -43.54 | -10.95 |
5. 考察
5.1 モデル精度の向上
V2(TARGET=0を除去)の方が明らかに全体的にMAEとMAPEが改善しており、特に高価格帯(Large Cap)のキーエンスでは、MAEが0.197 → 0.100に半減した。これは、価格の変動がない「停滞データ」が学習における誤差関数最小化に不要なバイアスを与えていたことを示唆する。
5.2 精度評価指標の異常値
一方で、Small Capグループ平均では、R²が-97から-260へとさらに悪化しており、これは外れ値の影響を受けやすいRMSEベースの問題に起因する可能性がある。特に、銘柄間の価格水準の差が大きく、log変換を用いてもそのスケールを完全に吸収できていないことが、全体の学習・評価における安定性の欠如を招いていると考えられる。
5.3 高価格帯銘柄におけるMAPEの爆発
キーエンスのような高価格銘柄では、絶対変動が小さくてもMAPEが極端に高くなっており、これは分母(実価格)に対する感度の高さによるものである。特に、100円 → 200円(+100%)と、10,000円 → 10,100円(+1%)では、同じ100円の差でもMAPEに与える影響が桁違いである。
6. 今後の改善方針:価格帯カテゴリの導入
こうした価格スケールに起因するモデル精度の劣化を是正するため、次回は以下のような設計を行う:
- 終値のlogを21日間移動平均で平滑化
- QCUTを用いて価格帯カテゴリを生成(例:5分位で分割)
- CATEGORY列をモデルに付与し、価格帯に応じた分岐を許容する学習構造へ拡張
このカテゴリ化により、モデルが価格帯ごとの特徴や感度差に適応できるかどうかを検証し、XGBoostのような非線形分岐型モデルが、価格帯情報を補助特徴量として適切に扱えるかどうかを明らかにする。
7. 注意点:SHAP分析の未実施
今回の実験においては、全体的にモデル性能が不安定かつ、極端に高いMAPEや負のR²が見られたことから、SHAP値の信頼性が確保できないと判断し、SHAPによる特徴量重要度の可視化は本稿では控える。
精度と分布の是正を行った後、次回以降にSHAP summary plotやdependence plotの導入を予定している。
研究キーワード:log収益率、TARGET除外、MAPE暴走、QCUT、価格帯カテゴリ、勾配ブースティング木、数理的誤差評価
Discussion