本記事は、AIによる馬券戦略の開発・検証を記録する実験ログの第2回です。第1回では、オッズを加工するだけでは控除率を越えられないという結論に至りました。今回は残された可能性である「締切直前の資金移動」を検証します。一度は回収率98.2%という数値が出ましたが、最終的な結論は否定的なものになりました。
実験の目的
第1回では、単勝オッズから複勝やワイドの割安な馬券を探す手法を検証し、いずれも控除率の水準にとどまりました。JRAの各プールは相互に整合的に値付けされており、確定オッズを加工するだけでは利益が出ないという結論です。
そこで第2回では、確定オッズだけを見ていた第1回では原理的に検証できなかった論点を扱います。すなわち、締切前にオッズがどう動いたかという情報です。
いわゆる「賢い金」が締切間際に入るのであれば、その動きに情報が含まれている可能性があります。
検証環境
JRA-VANは時系列オッズを配信しており、過去分を取得できます。
| 項目 | 内容 |
|---|---|
| データ | JRA-VAN 時系列オッズ(単勝・複勝・枠連) |
| 期間 | 2025/07/05 〜 2026/07/05(1年) |
| レース数 | 3,487 |
| スナップショット総数 | 553,309(1レース平均158.7回) |
| 取得間隔 | 開催日に5〜10分間隔 |
なお、前日以前のスナップショットは複勝票数が数票しかなく、数人が購入しただけの価格です。情報としての価値がないため、レース当日のスナップショットのみを分析対象としました。
前提の訂正:期待値の計算が約9%過大でした
検証に入る前に、第1回の手法に誤りが見つかりました。
複勝のオッズは「下限〜上限」の範囲で表示されます。第1回ではその中間値を使って期待値を計算していましたが、実際の払戻と突き合わせると次のようになりました。
| 実払戻 ÷ 表示オッズ(中間値) | 値 |
|---|---|
| 平均 | 0.906 |
| 中央値 | 0.933 |
中間値は期待値ではなく、実現値は下限寄りに出ます。 つまり第1回で「期待値1.10」と判定していた馬券は、実際には約1.00でした。期待値が一律に約9%膨らんでいたことになります。
第1回で「期待値の閾値を上げても回収率が改善しない」という結果が出た一因はここにあります。以降の検証では、この補正係数を学習期間から推定し、検証期間に適用しています。
検証1:直前の資金移動には相関がある
まず、投票時点のオッズと、その60分前のオッズを比較しました。オッズが下がった馬(資金が集まった馬)と、上がった馬(資金が抜けた馬)で結果が違うかを見ます。
ここで注意が必要なのは、「オッズが上がった馬」はほとんどが人気薄だという点です。単純に比較すると、第1回で判明済みの人気薄の不利を再表示するだけになります。そこで投票時点のオッズ水準で層別し、同じ価格帯の中で比較しました。
複勝の回収率(直前60分の変化別):
| オッズ層 | 平均オッズ | 短縮 | 横ばい | 上昇 | 差 |
|---|---|---|---|---|---|
| 中位 | 5.9 | 82.3% | 75.7% | 68.9% | +13.4pt |
| やや高 | 13.4 | 83.1% | 72.3% | 56.4% | +26.7pt |
| 高オッズ | 48.2 | 52.5% | 45.4% | 33.6% | +18.9pt |
同じ最終オッズでも、そこへ下がってきた馬と上がってきた馬で、回収率が20〜27ポイント違いました。
最終オッズが完全に効率的であれば、この差は生じないはずです。差があるということは、最終オッズが直前の資金流入を織り込みきれていないことを示します。第1回で自作の予測モデルが市場に何も足せなかったのとは対照的に、この情報は価格に反映されていません。
検証2:モデル化すると回収率98.2%
この情報を使って複勝の的中確率を推定するモデルを作り、期待値が1.00を超える馬券だけを購入した場合を計算しました。比較対象として、オッズだけを使うモデルも同条件で評価しています。
| モデル | 抽出された馬券 | 回収率 |
|---|---|---|
| オッズのみ | 0点 | — |
| オッズ+直前の変化 | 107点 | 98.2% |
オッズのみのモデルが1点も抽出しないのは理論どおりです。オッズだけから確率を推定すると、期待値は必ず「1−控除率」の水準に収まり、1.00を超えません。
一方、直前の変化を加えたモデルは107点を抽出し、その回収率は98.2%でした。ベースライン(同じ価格帯で約78%)を20ポイント上回り、この実験で初めて100%に手が届く数値です。
モデルの係数も筋が通っていました。60分前からは資金が抜けていたが、直前10分で急に買われた馬を選んでいます。締切間際の資金流入という、想定していた形そのものです。
検証3:サンプルを増やすと消えた
ここで飛びつかないための基準を、あらかじめ決めていました。信頼区間の下限が100%を超えて初めてエッジと呼ぶというものです。
107点での回収率98.2%は、95%信頼区間にするとおよそ66%〜130%でした。「本当は72%」も「本当は120%」も否定できません。第1回で設定した判定基準は「1,000〜2,000決着」であり、107点はその1割にも届いていません。
そこで検証期間を4分割し、それぞれを順に検証する方式に変え、特徴量も追加してサンプルを増やしました。結果です。
| 期待値の閾値 | 点数 | 的中率 | 回収率 | 95%信頼区間 |
|---|---|---|---|---|
| 1.00 | 1,788 | 23.1% | 74.5% | 66% 〜 83% |
| 1.05 | 1,152 | 20.0% | 69.3% | 58% 〜 81% |
| 1.10 | 789 | 13.3% | 51.6% | 38% 〜 65% |
サンプルは17倍になり、回収率は98.2%から74.5%に下がりました。全馬の複勝ベタ買いが69.6%ですから、その差はわずかです。信頼区間はベースラインを含んでおり、差があるとは言えません。
さらに、期待値の閾値を上げるほど回収率が下がっています。絞り込むほど悪化するのは、モデルの確率推定が選抜した領域で崩れていることを意味します。期待値フィルタが逆に機能しています。
期間別に見ると、崩れ方がより明確です。
| 期間 | 点数 | 回収率 |
|---|---|---|
| 第1期 | 293 | 90.8%(±24) |
| 第2期 | 267 | 87.0%(±19) |
| 第3期 | 432 | 90.8%(±18) |
| 第4期 | 796 | 55.4%(±13) |
前半3期は90%前後で推移しますが、最もサンプルの多い最終期で55.4%まで落ちています。過学習と不安定性の典型的な形です。前半が良く見えたのは偶然だったと考えるのが妥当です。
結果の解釈
検証1で観測した相関そのものは本物です。直前のオッズ変化には、確かに情報が含まれています。
しかし、その情報量は控除率20%と払戻補正9%を合わせた約28ポイントの壁を埋めるには足りませんでした。 相関があることと、期待値をプラスに転じさせられることは別の問題です。
また、期待値フィルタは変化が極端な馬を選び出します。そこはモデルが外挿する領域であり、ノイズが支配的になります。絞り込むほど成績が悪化したのはこのためと考えられます。
方法論について
今回の検証で最も価値があったのは、回収率の数値ではなく、107点の98.2%が1,788点では74.5%になったという事実そのものだと考えています。
点推定だけを見れば、107点の時点で「エッジを発見した」と結論することもできました。実際、そこで検証を止めて記事にすれば、見栄えのする内容になったはずです。
それを避けられたのは、事前に「信頼区間の下限が100%を超えるまでエッジと呼ばない」という基準を決めていたからです。
そして今回、否定的な結果が出た時点で検証を終了しました。特徴量をさらに追加したり、モデルを複雑にしたり、期間を切り直したりすれば、再び良く見える数値を作ることは可能です。しかしそれは、一度騙された道をもう一度歩くことに他なりません。否定的な結果が出た直後に条件を変え続ける行為は、統計的な自己欺瞞です。
結論と今後の方針
第2回の結論は否定的です。締切直前の資金移動は情報を含みますが、それを利用しても控除率を越えられませんでした。
2回の検証を通じて、JRAの市場は一貫して効率的でした。オッズの加工でも、独自の予測モデルでも、直前の資金移動でも、控除率の水準を明確に上回ることはできていません。
現時点で実際の資金は一切投じていません。エッジが確立していない以上、当初の設計どおりペーパー検証の段階にとどめます。根拠のない自信で実銭に移行しないことも、この実験の一部です。
次回以降は、公開データの限界そのものをどう扱うかを検討します。限界を認めたうえで問いを立て直すのか、別の情報源を探すのか。いずれにせよ、検証した内容はそのまま記録していきます。
本記事はAIが下書きを生成し、人間が公開可否を判断しています。掲載した数値はすべて実データによるバックテストの結果であり、恣意的な抽出は行っていません。本記事は情報提供を目的としたものであり、馬券の購入を勧誘するものではありません。

コメント