AIでJRAの回収率110%を目指す検証(第19回)|「4年とも正」も「層で符号が反転」も、検定ではなかった

「4年とも正」も「層で符号が反転」も、検定ではなかった 実験ログ

前回、採点プログラムが的中率にしか統計的な判定を掛けていなかったことを書きました。今回はその続きで、残っていた選別基準そのものが検定になっていなかったという話です。どちらも直感的には厳しい条件に見えます。実際にランダムなデータで同じ手続きを回してみたら、17本中15本が条件を満たしました。

厳しそうに見える基準

この検証では「技」と呼ぶ条件を一本ずつ採点しています。候補をたくさん並べて測るので、偶然良く見えるものが混ざります。その対策として、途中から2つの条件を足していました。

条件 いつ足したか 直感的な印象
年別4つの数字が全部同じ符号 4年平均が特定の1年に支えられていたと分かった後 4回連続で同じ向きなら本物だろう
クラスで効き方が変わる(符号が反転する) レースの種類を混ぜて測っていたと分かった後 層をまたいで逆転するなら、層が効いている証拠だろう

どちらも「複数の条件を同時に満たす」形なので、厳しい基準に見えます。

どちらも検定ではありませんでした。

条件1:年別4つの符号一致

真の効果が正で、各年のばらつきがそこそこ大きい場合を考えます。1年が正になる確率をおよそ0.84とすると、4年とも正になる確率は

0.84 の4乗 ≈ 0.5

およそ2本に1本です。 候補を15本並べれば、偶然に4年とも揃うものが数本出ます。

そして重要なのは、この条件に多重比較の補正が一切かかっていなかったことです。補正は別の指標(p値)にだけ掛けていて、符号一致は素通りでした。「補正済みの検定」と「補正なしの目視ルール」を並べて、両方を通ったものを合格にしていたわけです。

さらに悪いこと:減衰する技を弾けない

符号一致は「変化しない技を選ぶ基準」であって、「生きている技を選ぶ基準」ではありません。

人工のデータで、4年とも正のまま年々薄くなる効果を仕込んでみました。「他者に発見されて薄まりつつあるが、まだ死んではいない技」を再現したものです。

年別  +49.0 / +39.8 / +20.4 / +12.2   ← 4年とも正 = 旧基準は「合格」
前半→後半の減衰  −27.8pt(区間の上限 −16.9)  ← 減衰の検定は「薄まっている」と判定

旧基準は合格印を出します。 効果が4分の1になっていても、符号は4回とも正だからです。

これは市場相手の検証では致命的です。誰かに見つかった手法は薄まっていきます。薄まりつつある技を「4年とも安定」と読んで採用するのは、いちばんやってはいけない読み方でした。

条件2:層をまたぐ符号の反転

こちらはもっとはっきりしていました。

レースの種類(クラスや馬場)で6つの層に分けて測り直す設計を組み、実データに当てる前に完全にランダムな人工データで通してみました。効果はどこにも仕込んでいません。

層をまたいで符号が反転しただけ                  : 17本中 15本
反転かつ両端の信頼区間が重ならない(厳しい版)    :        2本

ランダムなデータで、17本中15本が「クラスで効き方が反転」しました。

理由は単純で、層に割ると各層の件数が6分の1になり、信頼区間が2倍以上に広がります。広い区間は簡単に0をまたぐので、符号はほぼ何でも割れます。

実データでこの結果を見ていたら、「15本が反転した、レースの種類で効き方が違うことが実証された」と書いていたはずです。書く直前で止まりました。

対策:帰無のデータで基準線を測る

やったことは単純です。判定に使う手続きを、効果がゼロのデータでそのまま回して、何本通るかを数える。

その数が「基準線」になります。

  • 反転しただけ → 15本が基準線。実データで15本出ても意味はない
  • 両端の区間が重ならない → 2本が基準線。実データで2本以下なら区別できない

そしてこの数字を、プログラムの出力そのものに埋め込みました。 結果を見た人が必ず一緒に読むようにするためです。基準線を別の場所に書いておくと、誰も見ません。

なぜこれが起きたか

2つとも、否定的な結果を受けた直後に足した条件でした。

  • 「4年平均が1年に支えられていた」→ じゃあ年別の符号も見よう
  • 「レースの種類を混ぜていた」→ じゃあ層で分けて反転を見よう

反応としては自然です。ただ、足した条件が統計的にどれくらい厳しいのかを、一度も測っていませんでした。 条件が増えるほど厳しくなる気がしますが、補正のない条件をいくつ足しても、多重比較の問題は解決しません。むしろ「見るべき数字」が増えるので悪化します。

今回の要点

  1. 「複数の条件を全部満たす」は、それ自体では厳しさの保証にならない。 各条件が偶然満たされる確率を掛け合わせて、初めて分かります。
  2. 補正済みの検定と、補正なしの目視ルールを並べない。 並べると、後者が実質的な選別を行ってしまいます。
  3. 基準の厳しさは、効果ゼロのデータで実測する。 「何本通るか」を数えれば、その基準の偽陽性の水準がそのまま出ます。
  4. その基準線を、結果と同じ画面に出す。 別の場所に書いた注意書きは読まれません。

前回の「表に出ている数字と、判定に使われている数字は違うことがある」と、根は同じでした。手続きが厳しく見えることと、厳しいことは別です。


この記事は個人の検証記録です。投資助言でも馬券の推奨でもありません。過去のデータに対する分析結果であり、将来の成績を保証するものではありません。

厳しそうな顔の店が、厳しいとは限らないんだな。

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

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