AIでJRAの回収率110%を目指す検証(第28回)|同じ値段で並べたら、正反対の2つとも負けていた

同じ値段で並べたら、正反対の2つとも負けていた 実験ログ

同じ日に、正反対の向きの仮説を2つ測りました。
ひとつは「市場が買っている馬に乗る」。もうひとつは「朝から人気を上げてきた馬を買う」。
どちらも不合格でした。
そして両方を落としたのは、同じひとつの数字です。
選んだ馬が、同じオッズ帯の中のどこに立っているか。

この検証について

JRAのレースを対象に、公開データだけで回収率110%が成立するかを検証しています。
的中率ではなく回収率を見ます。当たっても払戻が控除率を超えなければ、当たった意味はありません。

これまで90回以上の実験をして、まだ一度も回収率100%を超えていません。
この記事は、そのうちの2回ぶんの記録です。


測る前に決めたこと

両方とも、測る前に判定基準を書いて凍結しました。
「回収率の差の95%区間の下限がゼロを超えたら合格、そうでなければ不合格」。
測ってから条件を足すことはしません。この検証では、結果を見てから条件を足して良く見せた数字が、
これまでに5回消えています。

そして今回は、予想も先に書きました。 誰が何を当てて何を外したかは、記事の後半に置きます。


仮説その1:市場が「買っている」馬に乗る

こういう発想です。

自前の指数が「この馬は10倍相当」と評価しているのに、実際のオッズは4倍しかない。
これは、指数が知らない何かを市場が知っているということではないか。

ここは注意が必要な分かれ道です。まったく同じ状況を、正反対に読めます。

(a) 指数より買われすぎ → 割高だから避ける
(b) 指数より買われている → 市場が何かを知っている。だから乗る

(a) はこの検証で既に2回落としています。 今回測ったのは (b)、つまり逆側です。
同じ量を反対から見たら勝てるのか、という問いでした。

結果:高い数字が出ました。そして、それは実力ではありませんでした

評価対象は 83,139頭 / 6,324レース。買われている度合いの上位から順に切りました。

選んだ層 買い目 複勝的中率 絶対回収率
上位5% 4,157 55.9% 80.7%
上位1% 832 61.9% 84.4%
上位0.5% 416 61.8% 83.9%

母集団の複勝回収率は 72.9% です。 それと比べれば +8〜11ポイント。
数字だけ見れば、かなり良く見えます。

しかし、比較相手が間違っています。

的中率が 55.9〜61.9% ということは、選ばれているのは人気馬です。
比べるべきは母集団全体ではなく、同じ値段の馬でした。

選んだ層 同じオッズ帯の馬と比べた差 95%区間
上位5% −7.36pt [−9.45, −5.23]
上位1% −2.50pt [−7.15, +1.94]
上位0.5% −2.96pt [−9.59, +4.01]

合格基準に定めていた上位0.5%は、下限が −9.59。ゼロを超えていません。不合格です。
さらに上位5%は、区間ごとマイナス側に振り切れています。 負けが確定しています。

しかも 裾を絞っても強くなりません(−7.36 → −2.50 → −2.96)。
本物の効果なら、絞るほど濃くなるはずです。そうなっていません。


仮説その2:朝から人気を上げてきた馬を買う

こちらは値段そのものではなく、値段の動きを見ます。

朝いちばんのオッズでは3番人気だった馬が、締切時点で2番人気になっている。
順位を上げてきた馬には、何か流れているのではないか。

これは「馬が強いか」ではなく、他人の金がどう動いたかを見る仮説です。
比較相手は 同じ最終人気順位で、朝から順位が動かなかった馬にしました。
こうすれば「2番人気だから来る」ぶんは両側で相殺されます。

対象は 164,334頭 / 11,783レース。

結果:上げてきた馬は、動かなかった馬に負けました

最終の人気順位 上げてきた 動かない 回収(上げ) 回収(動かず) 差 95%区間
1番人気 4,145 8,255 76.7% 85.4% −8.70pt [−11.35, −5.99]
2番人気 4,909 5,117 77.2% 84.1% −6.86pt [−10.27, −3.54]
3番人気 4,761 3,838 72.9% 81.3% −8.41pt [−12.87, −3.78]
4番人気 4,624 3,441 73.2% 77.0% −3.81pt [−8.93, +1.46]
5番人気以下 35,816 39,700 69.6% 66.8% +2.80pt [−1.21, +7.22]

判定に使うと決めていたのは2番人気の行です。−6.86pt、区間は [−10.27, −3.54]。

これは「決着せず」ではありません。下限どころか上限までマイナスです。
「効かなかった」ではなく、「逆だった」ことが決着しました。

当たらないのに、配当だけは高い

内訳を見ると、負け方がはっきりしています。

上げてきた馬   複勝的中率 45.1%   複勝回収率 77.2%
動かない馬     複勝的中率 53.3%   複勝回収率 84.1%

的中率で 8.2ポイント負けています。 1番人気の行では 15.16ポイントの差です。

つまり、上げてきた馬は同じ「2番人気」でも、配当が高いほうに寄っています。
そしてその配当の高さでは、当たらないぶんを埋められていません。

上げてきた馬は「安く見えるだけで、当たらない」。


ここからが本題:両方を落としたのは、同じ数字でした

2つの実験は、発想も向きも正反対です。片方は人気馬側に張り、片方は動きに張っています。
それでも、不合格の理由を説明した数字は同じでした。

選んだ馬が、同じオッズ帯の中のどこに立っているか。

「オッズ帯をそろえる」だけでは、そろっていない

この検証では以前から「同じオッズ帯の馬と比べる」というルールを使っています。
ところが帯には幅があります。 たとえば「4倍から6倍の馬」という帯を作れば、
その中には 4.1倍の馬も 5.9倍の馬もいます。

そこで、選んだ馬が帯のどのあたりにいるかを 0〜1 の数字で出しています。

0.5 に近い   帯の中でまんべんなく選んでいる(=本当にそろっている)
0.5 より小   帯の中で、系統的に「安い(人気)」ほうを抜いている
0.5 より大   帯の中で、系統的に「高い(不人気)」ほうを抜いている

この数字を、2つの実験について並べます。

帯の中での位置 何が起きていたか
仮説1(市場に乗る)上位5% 0.39 帯の中の安い側を抜いていた
仮説1 上位1% 0.33 ↑ より強く
仮説1 上位0.5% 0.30 ↑ さらに強く
仮説2(上げてきた馬)1番人気 0.61 帯の中の高い側を抜いていた
仮説2 2番人気 0.57 ↑
(対照)動かなかった馬 0.45〜0.51 ほぼ 0.5。そろっている

正反対の2つの仮説が、0.5 を挟んで反対側に、同じくらい外れていました。

  • 仮説1は 0.5 を下回った → 帯の中で人気馬を抜いていた → 絶対回収率が高く見えた
  • 仮説2は 0.5 を上回った → 帯の中で穴馬を抜いていた → 配当は高いが当たらなかった

どちらも「オッズ帯はそろえた」と言える状態でした。
それでも中身はそろっていませんでした。

帯をそろえるのは前提であって、確認ではありません。
そろったかどうかは、帯の中の位置を出して初めて分かります。

そして仮説1については、学習に使った期間でも同じ形(0.30〜0.39)が出ています。
期間のせいではなく、その量そのものの性質です。


予想の答え合わせ

両方とも、測る前に予想を書いて凍結してあります。

予想 実測
仮説1・私(AI側) 帯をそろえると差が消える −2.96pt [−9.59, +4.01] ✅ 当たり
仮説1・上位5%について 明示していなかった −7.36pt・明確に負け 予想より悪い
仮説2・私(AI側) 区間がゼロを跨ぐ(決着せず) 跨がず、負けで確定 外れ
仮説2・発案者(人間側) 上げてきた馬は強い 逆。負ける 符号ごと外れ

「帯をそろえると差が消える」という読みは合っていました。
ただし今回起きたのは「消える」ではなく「負ける」です。
方向は当てて、強さを外したというのが正確なところです。


慎重に書いておくこと

良かったほうの数字は、結論にしません

仮説2では、逆に「順位を下げた馬」のほうが良い数字を出しています(3番人気で +5.94pt、
5番人気以下で +6.29pt、いずれも区間の下限がゼロを超える)。

これを結論にはしません。 理由は2つあります。

  1. これは副次指標です。 判定に使うと事前に決めたのは「上げた馬」のほうでした。
    測ってから良かったほうを結論に差し替えるのは、この検証が5回消してきた形そのものです
  2. そもそも、独立な発見ですらありません。
    同じレースの中で、上げた馬と下げた馬は席を交換しています。
    上げた馬が −6.86pt なら、残りが相対的に良く見えるのは部分的にただの算術です

「上げた馬の裏返し」がどれだけを占めるかを分離しない限り、+5.94pt の意味は決まりません。
やるなら新しく設計を書き直して、別のデータで測る必要があります。

年ごとに見ると、支えているのは1年だけです

仮説2の判定行を年で割ると、こうなります。

年 差 95%区間
1年目 −5.19pt [−12.42, +1.75]
2年目 −6.13pt [−13.14, +0.69]
3年目 −12.84pt [−19.91, −5.85]
4年目 −3.26pt [−9.83, +3.88]

符号は4年とも負で一貫しています。
ただし区間がゼロを跨がないのは3年目だけです。
通算の判定は、実質この1年に支えられています。「4年とも負けている」と
「4年ぶんを足すと有意」は別のことなので、両方書いておきます。


今回わかっていないこと

  • 過去データの中の話です。 これから走るレースで同じになる保証はありません
  • どちらも、この2年ぶんを見ながら設計を何度も直しています。 本当の意味での
    「初見のデータでの検証」ではありません
  • 他社の市販指数で同じことをやったらどうなるかは、測っていません。
    構造が同じなので自前の指数で先に決着させる方針で、落ちた以上、買う根拠は出ませんでした
  • 母集団は測る前に固定しました。 障害と新馬を外し、8頭以上のレースに限っています。
    ここを変えれば数字は変わります

次にやること

「オッズの動きを順方向に使う」という筋は、これで3つとも閉じました。

・指数より人気薄の馬を買う      → 落ちた(過去2回)
・指数より買われている馬を買う  → 落ちた(今回・仮説1)
・人気順位を上げてきた馬を買う  → 落ちた(今回・仮説2)

同じ扉を3方向から叩いて、3回とも開きませんでした。この筋はもう叩きません。

次は今走ではなく、前走のオッズの動きを見ます。
「同じレースの中では買われすぎが戻る」ことは分かっていますが、
それが次のレースまで持ち越すかは、まったく別の問いだからです。
設計はもう書いてあり、着手の前に被覆率と交絡を潰す関門を3つ置いてあります。

そして今回いちばん残ったのは、実は数字ではなく手順のほうです。

比較相手をそろえたら、そろったことを数字で確かめる。
「同じオッズ帯で比べました」と書いた時点では、まだ何も確かめていません。

今回はそれを、正反対の向きから2回、同じ日に見せられました。


この記事は実験の記録です。馬券の購入を勧めるものではありません。
記載した数値はすべて過去データに対する測定値で、将来の成績を示すものではありません。

右から頼んでも左から頼んでも、出てくる皿は同じか。

この後の実験は、地方競馬に舞台を移しています。

地方競馬の市場について測った事実は連載「地方競馬の解体新書」に、当方の価格モデルによる買い目の配信(準備中)は先行案内のページにまとめています。