AIでJRAの回収率110%を目指す検証(第26回)|比べているつもりで、同じものを見ていた

比べているつもりで、同じものを見ていた 実験ログ

同じ日に2つの実験をしました。どちらも「比較」でつまずきました。
片方は2つの手法を点推定で比べて勝った気になり、もう片方はグループ分けと買い方が
実は同じものになっていることに気づいていませんでした。
数字自体はどちらも正しく、間違っていたのは読み方だけです。

この検証について

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

これまで80回以上の実験をして、まだ一度も回収率100%を超えていません。
この記事は、その過程で踏んだ比較の落とし穴2つの記録です。


1つめ:0.02ポイント勝っていた。誤差の幅はその18倍だった

何を確かめたかったか

前走で不利を受けた馬は、次のレースで実力より安く売られているのではないか——これは前から追っている筋です。

不利の測り方として、それまで「内寄りか外寄りか」を1本の直線で表す指標を使っていました。
内が0、外が1、という具合です。この指標は、これまでの実験でそこそこ効いていました。

ところが、ある日こう気づきました。

不利は両端にあるのではないか。
外を回された馬は距離を余分に走らされる。
内にいた馬は前が壁になって出せない。
1本の直線で測ると、この2つが打ち消し合ってしまう。

つまり、いま使っている指標は「内で詰まった馬」を有利な側に数えている可能性があります。
だとすれば、これまで観測できていた効果は、打ち消された後の残りかすにすぎません。

そこで「両端ほど大きくなる」形の指標を新しく作り、元の直線の指標と正面から比べることにしました。

事前に決めておいたこと

比べる前に、次のことを文書にして凍結しました。

  • 対象データ、グループ分け、判定の基準
  • 「新しい指標が古い指標を上回った」と言うための条件
  • 予想(どちらがどれくらい勝つか)を先に書いておく

最後の1つが今回の主役です。過去に一度、ここで失敗しているからです。

以前の実験で、2つの手法を比べて「新しいほうが 0.10ポイント上回った」と結論したことがあります。
そのとき、誤差の幅はその10倍ありました。 つまり「上回った」と言える根拠は何もなく、
たまたま点が上に出ただけでした。

そこで今回は、条件をこう書きました。

2つの手法の差そのものに信頼区間を付ける。区間の下限が0を超えたときだけ「上回った」と書く。
点推定の大小比較は結論に使わない。

結果

新しい指標は、古い指標を上回りませんでした。

3つのグループすべてで、差の信頼区間が0をまたぎました。
いちばん成績が良かったグループでも、差はわずか +0.02ポイントでした。

そして、その 差の誤差の幅は、差そのものの約18倍ありました。

もし点推定の大小で判定していたら、「+0.02ポイント上回った」と書いていたはずです。
事前に区間を要求しておいたおかげで、そう書かずに済みました。

これは「以前と同じ失敗を、2回目で回避できた」という記録です。
同じ罠に落ちなかった回のほうが、落ちた回より書く価値があると思っています。

ただし、仮説が全部外れたわけではない

面白いのはここからです。「両端に不利がある」という見立て自体は、部分的に当たっていました。

  • 外を回された馬は、中くらいの頭数のレースで明確に効いていました
  • 内で詰まった馬は、多頭数のレースで効いていました
  • どちらも年ごとに符号が一貫していました

つまり両端はそれぞれ効くのに、1つの指標にまとめると元の直線を超えない。
両端を足し合わせる作り方が悪かったのか、それとも直線の指標が既に両方を拾えていたのか——
そこはこの実験では決まりません。決まらないことも、決まったこととして書きます。

そして予想外の収穫が1つありました。前走で誰にも囲まれず単独で走っていた馬は、
次のレースで明確に「買われすぎ」でした。
年ごとに一貫して、はっきり負けています。
効かないほうに賭けた予想が、いちばんよく当たりました。


2つめ:グループ分けが、そのまま買い方になっていた

何を確かめたかったか

もう1つの実験は、こういう問いから始まりました。

人気馬がどれくらい信頼できるかは、オッズを見れば市場の考えが分かる。
では、市場とは別の物差しで信頼度を測れないか。
それができれば、市場より有利にレースを選べるはずだ。

手元には市場と無関係な物差しが1つあります。オッズも人気も過去の着順も使わない指標です。

そこで、「1番人気の馬が、その物差しで何位か」でレースをグループ分けしました。
1番人気が我々の物差しでも1位なら、市場と我々の意見は一致しています。
1番人気が我々の物差しで下位なら、意見が食い違っているレースです。

「意見が食い違うレースほど荒れるはずだ。そこを狙えば有利ではないか」——これが仮説です。

第1段階は、きれいに成立しました

グループ分けは狙いどおりに働きました。1番人気の複勝率が、グループを移るごとに単調に下がります。

市場と一致するグループ    69.0%
やや食い違うグループ      67.4%
かなり食い違うグループ    65.0%
大きく食い違うグループ    62.3%

「荒れるレースを事前に見分ける」ことは、確かにできています。

第2段階で、また落ちました

では、その荒れるレースで我々の物差しが推す馬を買うとどうなるか。

グループ分けをしない場合と、ほとんど変わりませんでした。
いちばん荒れるはずのグループが、むしろいちばん低い回収率でした。

同じ形は前にも一度あります。同じグループ分けで別の買い方を試したときも、
グループ分けなしの成績を超えられませんでした。

「荒れるレースを当てる」は2回とも成功し、「そこで何を買うか」が2回とも失敗しました。
機構は実在するのに、換金する手がありません。

そして、いちばん危なかったのはここです

グループ分けの表を見たとき、1つのグループだけ、成績が飛び抜けて良かったのです。
回収率は他より5ポイント以上高く、統計的にも文句なしに見えました。

もう少しで「このグループだけは効いている」と書くところでした。

書かずに済んだのは、数字の並びに違和感があったからです。
そのグループの的中率が、「1番人気の複勝率」と小数点以下まで完全に一致していました。

理由は、考えてみれば当たり前でした。

そのグループの定義は「1番人気の馬が、我々の物差しでも1位」です。
そして買い方は「我々の物差しで1位の馬を買う」です。
つまりこのグループでは、買っている馬が1番人気そのものでした。

グループの定義と買い方が、同じ馬を指していたのです。
その成績は手法の効果ではなく、「1番人気を買うとどうなるか」を別経路で測り直しただけでした。

3つの独立な確認

いったん疑ってからは、裏付けは簡単に取れました。

  1. オッズ帯の中での位置が偏っていました。 そのグループだけ、同じオッズ帯の中で
    系統的に安いほうの馬を買っていました。手法の効果ではなく、価格の抜き取りです
  2. 最低オッズの条件を1つ足すと、成績が反転しました。 対象が半分に減り、
    プラスだった数字がマイナスになりました。他のグループはほとんど動きませんでした
  3. 年ごとの数字が壊れていました。 片方の年は大きくマイナス、もう片方は極端なプラスです。
    他のグループは年ごとに +1〜+3 の範囲に収まっていました

3つとも、同じ結論を別の角度から指しています。


覚えて帰るなら、この2つ

その1:差を主張するなら、差そのものに区間を付ける

AとBを比べて「Aのほうが良かった」と言いたいとき、
Aの区間とBの区間を別々に出して見比べても、判定にはなりません。
必要なのは A−B という量そのものの区間です。

このとき、AとBは同じ再標本から作る必要があります(同じレースの引きを共有する)。
別々に作った区間の引き算では、ばらつきを二重に数えてしまいます。

その2:グループ分けの条件と、買う条件が重なっていないか先に確かめる

これは今回はじめて言語化できたルールです。

グループ分けに使った量と、買う馬を選ぶ量が同じだと、
あるグループで「グループ=買い目」に縮退することがある。

そのセルの成績は手法の効果ではなく、グループの定義そのものの成績になる。

しかも縮退したセルは、たいてい成績が良く見えます。
今回のように「1番人気を買っているだけ」なら、当たり前に当たります。
だから気づきにくく、気づかないまま「この条件では効く」と書いてしまいます。

機械的に確かめる方法も1つ用意しました。

各グループについて
  重なり率 =(買った馬 ∩ グループ分けに使った馬)÷ 買った馬

この値がグループによって 0 か 1 に張り付くなら、その層別は縮退している

今回のケースでは、この計算だけで、データを1行も読まずに棄却できます。
定義から答えが出るからです。

ただしこれで全部は拾えません。馬としては一度も重ならないのに、
片方が決まれば他方が機械的に決まる
——という従属もあります。
複勝の配分は全体で1になるので、ある馬の評価が下がれば残りは自動的に上がります。
そこは重なり率では見えないので、別の確認が要ります。


今回わかっていないこと

  • どちらの実験も、過去データの中での話です。 これから走るレースで同じになる保証はありません
  • 儲かるようにはなっていません。 効いた項目も、回収率は100%に遠く届きません
  • 「両端の不利」をうまくまとめる方法があるのかどうかは、決まっていません
  • 「荒れるレースで何を買えばいいか」は、2回試して2回とも答えが出ていません

次にやること

「荒れるレースを見分けられる」ことは2回とも確認できました。
足りないのは、そこで何を買うかです。

ただし同じデータを何度も掘り直すのはやめます。
条件を後から足して数字を良くするのは、これまで5回試して5回とも消えています。

いま進めているのは、これから走るレースだけを記録し続けるやり方です。
判定は先の話ですが、条件を先に凍結してから貯めた記録だけが、本当の答えになります。


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

違う店に入ったつもりが、同じ暖簾をくぐっていた。

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

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