穴馬を予測2(残差を見てみる)
前回の記事
前回記事で、一応穴馬を予測するモデルを作ったんですが、
Precision(3着内の馬の正答率)13.5%
Recall(どれだけ拾えたか)96.9%
F1(PrecisionとRecallのバランス)23.6%
でした。
これをなんとかもう少し精度を良くしたい!ってことで今回は残差によるしきい値設定の話です。
残差ってなに?
残差(ざんさ、英: residual)とは
「残差」とは、主に統計やデータ分析の分野で使われる用語で、実際のデータと予測や推定された値との差を指します。具体的には、回帰分析において、残差は目的変数(y)の実際の値と回帰式によって予測した値との差を表します。(copilotより)
図だとわかりやすい。大丈夫です。自分も統計学はよくわかりません。

これをどうするの?
下の図は自分の作った各馬の合成スコアとオッズのプロットです。3着以内にきた馬を表示しています。(2022-2025)
合成スコアはLightGBMを使って、馬体重・過去成績などから算出した”強さ指標”的なスコアです(前の記事参照)。

これを見てもらうと、オッズが上がるにつれて減衰していく帯のような形状になっています。
また、スコアが高いほど密・オッズ低⇔スコアが低いほど疎・オッズ高
の関係性が読み取れます。
で、狙いたいのはココ。
スコアが高い割にオッズが高い、いわゆる期待値の高い馬たち。
図で言うと帯の上端以上の馬。

じゃあどうすればそれを捉えられるかってことで残差が出てきます。
図が無かったんで手書きですが、、、
オッズと過去の合成スコアから現在の合成スコアを予測
→現在の合成スコアとの残差を計算。

これで一応は残差の良い馬=前図の期待値の高い馬ということになります。
で、ちゃんと機能するの?
どうなんでしょう??下に条件別の回収率を示します(バックテストです)。

2025と2024だけを見れば、なし→-0.5σ以上→-0.3σ以上で回収率が段々に上がっています。これは残差の絞りが効いているものと思われます。
ただ2022、2023を見てみると全く効いていません。波乱傾向が強かったのか、残差がちゃんと拾えていないのか、要因は不明です。
相関などを見てみれば良いのですが、ここらへんで結構満足してしまったため手を付けていません、、、
(追記)
相関を見てみたらバッチリ出ていたので追記します。
着順と残差の相関係数は-0.34、残差の数字が上がるほど良い着順(数字が下がる)になっています。
地味に合成スコアがoddsの相関を上回っていたのも嬉しいところ(-0.47 vs 0.42)。

というわけで、また気が向いたら改良していこうと思います。
一応終わり、、かな? 気が向いたら続きます(続いた)。
続き↓
↓予想は一応ここで公開しています。手作業なんでやったりやらなかったりですが。
