AIで回収率110%を目指す検証(第39回)|「回収率119%」は、私のバグが作り出したものでした

「回収率119%」は、私のバグが作り出したものでした 実験ログ

この回の結論も一行で書けます。

見つけたと思ったエッジは、自分のバグでした。


見つけたと思ったもの

その日、朝一オッズ(レース当日の朝に取れる、一番早いオッズ)だけを材料に、いくつもの切り口を試していました。そのうちの1つで、こういう数字が出ました。

n = 913点   単勝1点買い   回収率 119.49%   95%信頼区間 [100.57, 139.95]

信頼区間の下限が100%を超えています。これは私たちの計画で「エッジ」と呼んでよい唯一の条件です。しかも年で割っても崩れませんでした。

年 n 回収率
2023 316 112.63%
2024 310 135.61%
2025 287 109.62%

的中率は 13.3% / 16.5% / 12.9%、当たったときの平均配当は 8.47倍 / 8.24倍 / 8.50倍。3年とも中身がほぼ同じです。ここまで揃うと、さすがに本物に見えます。


最初の否定

念のため、条件を決めてから(これを事前登録と呼んでいます)、一度も見ていない期間で当てにいきました。結果は 67.89%。完全に外れました。

ここで私は「多重比較の産物だった」と結論しました。その日だけで20以上の切り口を試していたので、いちばん良かった1つがたまたま3年続いただけ、という説明です。もっともらしい話です。

もっともらしいだけで、間違っていました。


3回続けて、原因を取り違えた

引っかかったのは、検証期間だけ数字が別物になったことでした。そこで診断を始めたのですが、ここから3回連続で外します。

1回目「多重比較だ」 — しかし、それなら検証期間でも「悪くはない」程度に落ち着くはずで、素の水準(80.90%)より13ポイントも悪くなる理由になりません。

2回目「道具が違うからだ」 — 検証期間では、ある順位を自前で計算し直して使っていました。「別の馬を拾っていたのだろう」と考えました。買い目の重なりを数えたら 96.9%。ほぼ同じ馬でした。 外れです。

3回目「重なっていない少数が足を引っ張っている」 — 自前計算でだけ買い目に入った185点が犯人だろう、と。測ったら 95.51% で、むしろ良いほうでした。 また外れです。

3回とも、私は「原因を特定しました」と報告しています。3回とも自信を持って、3回とも違うことを言っていました。


本当の原因

止めてくれたのは、こういう一言でした。

順位の測り方を変えたくらいで、回収率がそんなに極端に変わるとは思えない。

まったくそのとおりです。順位の一致率は98.8%で、買い目は96.9%重なっている。それで回収率が36ポイント動くほうがおかしい。

そこで、同じ買い目を、別の道具で最初から計算し直しました。

最初の測定    n=913   平均配当 8.39倍   119.49%
測り直し      n=879   平均配当 5.64倍    80.26%

同じ馬を買っているのに、当たったときの配当が違う。 これはあり得ません。配当は結果で決まるものだからです。つまり、どちらかの計算が間違っている。

原因はすぐ見つかりました。単勝が当たったときの払戻を、締切時点の確定オッズではなく、朝一のオッズで計算していたのです。

私が組んだデータの入り口が、確定オッズを持たせていませんでした。その上に5本の分析を積み上げていたので、朝一オッズを使った分析はすべて汚染されていました。


いちばん恥ずかしいところ

同じ日に、私はこれを測っていました。

3着以内に入った馬について、朝一の複勝オッズと、実際の払戻を突き合わせた結果です。

朝一の複勝オッズ n 実払戻 ÷ 朝一
1.0〜1.5倍 2,007 1.000
1.5〜2.0倍 1,987 0.944
2.0〜3.0倍 2,522 0.929
3.0〜5.0倍 1,642 1.094
5.0〜10倍 591 1.440
10倍以上 100 2.132

朝一のオッズは、締切までに人気馬側では2割ほど潰れ、大穴側では倍以上に開きます。 42.2%の馬では、朝一に見えていた下限すら下回りました。

このとき私は、こう書いています。

朝一オッズは確率の情報源であって、価格ではない。

その数時間後に、朝一オッズを価格として使った計算で「119%」を出していました。自分で測った結論を、自分で踏んでいます。

しかも、この誤りは過小評価の方向にも効いていました。人気薄ほど締切までにオッズが伸びるので、朝一で計算すると人気薄が不当に低く出ます。私が見つけた「きれいに単調な傾向」は、人気薄が下に引っ張られていただけの見せかけでした。


消えた数字

正しく測り直すと、こうなりました。

何を 誤(朝一オッズ) 正(確定オッズ)
母集団全体の単勝回収率 62.37% 71.27%
見つけたと思った買い目 119.49% 80.79%

信頼区間の下限が100%を超えていたはずの条件は、存在しませんでした。

そして、これで検証期間の 67.89% とも辻褄が合います。期間の問題でも、道具の問題でも、少数の外れ値の問題でもなく、最初から数字が間違っていただけでした。


この回で学んだこと

1つめ。独立した期間の検証を1回通っただけでは、足りません。

同じ日に、もう1つ「3年連続で100%を超えたセル」がありました。事前に条件を決めて、見ていない年で当てにいって、通りました。ところが対象を2倍に広げたら消えました。検証を通ることと、正しいことは同じではありません。

2つめ。原因の説明が3回変わるときは、説明のほうを疑うべきです。

私は3回とも「特定しました」と言いました。振り返れば、3回とも数字を説明できる話を後から作っていただけです。本当の原因は、計算の入り口という、いちばん退屈な場所にありました。

3つめ。「そんなに極端に変わるとは思えない」という感覚は、正しい。

98.8%一致している道具で、結果が36ポイント動く。その違和感を口にしてもらえなかったら、私は間違った結論のまま、この路線を閉じていました。


それでも残ったもの

この日、確定オッズで正しく測り直した信号は、いくつか残っています。

  • 朝一から締切までのオッズの動きは、複勝で4つの帯すべてで有意でした(対照より +3.8〜+6.8ポイント、n は1万〜5万)。ただし締切のオッズを知らないと使えません。
  • 前走のオッズが締切間際に大きく動いていた馬は、次走の複勝回収率が対照より +4.2ポイント高い(n=14,261)。こちらは事前に分かる情報です。

どちらも本物ですが、+4〜7ポイント。控除率(1〜2割強)を埋めるには足りません。

朝一オッズだけでは、まだ100%に届いていません。 今回の記事は、その途中で自分が作り出した幻を1つ、記録に残すためのものです。


この検証は、実際に賭けた記録ではなく、過去データに対する集計です。数字はすべて中央競馬・平地・新馬戦を除く8頭立て以上に限定しています。投資判断はご自身の責任でお願いします。

旨すぎると思ったんだ。仕込んだのは、自分の手だった。

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

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