🚧 本アプリは現在開発中です。公開・リリース時期は決まり次第お知らせします。
目次(データマイニング入門

競馬編

的中率ではなく回収率で見る

オッズは人気を織り込んでいるので、よく当たる予測ほど配当が安くなります。控除率という固定の不利と、分散の大きさ。

この記事の要点

  • オッズは「みんなの予想」です。よく当たる予測ほど配当が安く、的中率と回収率は連動しません。
  • 馬券には控除率という固定の不利があり、平均的には必ずマイナスから始まります。
  • 少ない試行では回収率は大きく振れます。良い数字が出ても、まず母数を確認してください。

2 つの指標は別のことを測っている

指標計算意味
的中率当たった回数 ÷ 買った回数どれくらいの頻度で当たるか
回収率払戻の合計 ÷ 投票額の合計賭けた額に対して、いくら戻ったか

的中率を上げるだけなら簡単です。毎レース、いちばん人気の馬を買えばよいのです。 しかしそれで回収率が 100% を超えるわけではありません。当たりやすい馬は、当たりやすいぶん配当が安いからです。

オッズは「すでにある予測」

競馬のオッズは、投票された金額から決まります。 つまりオッズは参加者全員の予想を集計した結果であり、 こちらがモデルを作る前から、そこには相当に精度の高い予測が存在しています。

単勝オッズからは、市場が見込んでいる勝率をおおよそ逆算できます。 「1 ÷ オッズ」がその馬の勝率の目安で、人気馬ほど高く、人気薄ほど低くなります。 ただしこの値を出走馬全頭で足すと 1 を超えます(単勝なら 1.25 前後)。控除率のぶんだけ多めに出るためで、 そのまま勝率として使うと自分の見立てが市場より正確に見えてしまいます。 比べるときは、合計が 1 になるように直してから突き合わせてください。

ここから、競馬のデータマイニングにおける本当の問いが決まります。

期待値 ── 見積もった勝率とオッズを掛ける

買うかどうかの判断は期待値で考えます。単勝であれば、

期待値 = 見積もった勝率 × オッズ(払戻倍率)

で、賭けた額が平均していくらになって戻るかを表します。 1.0 が損益分岐点で、これを下回る買い方は続けるほど減っていきます。 勝率 20% と見積もった馬のオッズが 6.0 倍なら期待値は 1.2、 同じ馬がオッズ 4.0 倍なら 0.8 です。同じ予測でも、オッズしだいで買う価値は逆転します

ここで使う勝率は、モデルの出力を確率として扱える形に直したものです。順序が正しいだけでは足りず、確率としての正しさが要るのはこのためです。

控除率という固定の不利

馬券は、投票された金額の全額が払い戻されるわけではありません。 一定割合が差し引かれ、残りが的中者に配分されます。 差し引かれる割合を控除率、残る割合を払戻率と呼びます。

JRA の払戻率は券種によって異なります(2014 年 6 月以降)。

券種払戻率控除率
単勝・複勝80%20%
枠連・馬連・ワイド77.5%22.5%
馬単・3連複75%25%
3連単72.5%27.5%
WIN570%30%

組み合わせが多い券種ほど低い傾向はありますが、順序どおりに並ぶわけではありません(ワイドは馬単より高い)。 また、開催によっては払戻率が上乗せされる「JRA プレミアム」もあるため、 完全に固定というわけでもありません(最新の率は JRA の公表値をご確認ください)。

これは参加者全体で見れば、必ずマイナスから始まることを意味します。 でたらめに買っても、人気順に買っても、平均的には払戻率のぶんだけ目減りします。 期待値をプラスにできるとすれば、市場の見込みが実際からずれている場面を、控除率を上回る精度で拾えたときだけです。 これは簡単なことではなく、本サイトも、それが達成できると保証するものではありません

数字の例(架空のサンプル)

次の表は、説明のために作った架空の数値です。 実際の成績を示すものではありません。

買い方(架空)的中率平均配当回収率
A: 1 番人気を単勝で買う32%2.4 倍77%
B: 5〜8 番人気から条件で絞って買う9%9.0 倍81%

A は B の 3 倍以上当たりますが、回収率では下回っています。的中率の高さは、そのまま成績の良さではありません。 B は単勝の払戻率 80% をわずかに上回っていますが、 これは平均を上回る買い方がありうるという意味であって、どちらも 100% には届いていません。 控除率がある以上、これが普通の姿です。

回収率は大きく振れる

回収率のもうひとつの厄介な性質が、ばらつきの大きさです。 配当の分布は極端に偏っていて、めったに出ない高配当が全体を左右します。

100 レース程度の検証で回収率 120% が出ても、 それはたまたま高配当が 1 本混じっただけかもしれません。逆に、 良い方法でも数百レース単位でマイナスが続くことがあります。 数字を見るときは、必ず何レース分の結果なのかを確認してください (件数の少なさが生む「すごい数字」)。

検証は必ず時間で切る

競馬データは時系列です。交差検証をランダムに行うと、未来のレースで学習して過去を当てる形になります。 実運用の順序を再現していないので、その数字は買うときの見込みとして使えません (多くの場合は楽観的に偏ります)。

「ある時点より前で学習し、それ以降で検証する」という分け方を守ってください。実運用と同じ順序で試すことが、 バックテストを信用できるものにする最低条件です。

バックテストの作法

  • 買い目のルールを先に決める… 結果を見てから条件を足すと、後知恵で作った戦略になります
  • 試した条件の数を記録する… 何十通り試した末の最良は、そのぶん甘い数字です
  • 条件を絞りすぎない… 対象レースが減るほど、数字はきれいにも汚くもなります
  • 買えない前提を混ぜない… 確定オッズを使って買い目を決めるのは、締切後の情報で買うのと同じです
  • 期間を変えて再確認する… 別の年でも同じ傾向が出るかを見ます
  • 少頭数のレースに注意する… 複勝の的中範囲は出走 8 頭以上なら 3 着以内ですが、5〜7 頭では 2 着以内に狭まり、 4 頭以下では複勝そのものが発売されません。券種のルールが変わる以上、 少頭数のレースを混ぜたままの集計は意味が変わります

資金配分(ケリー基準)の注意

期待値がプラスだと考えられる場面で、資金の何割を賭けるかを決める考え方にケリー基準があります。 長期的な資金の増え方を最大にする配分として知られています (期待値がプラスであるという前提が正しい場合に限ります)。

ただし、この計算は「見積もった勝率が正しい」ことを前提にしています。 勝率を高めに見積もっていれば、推奨される賭け金も過大になり、 資金の減り方は想定より激しくなります。「最適な賭け金」ではなく「前提が正しければ最適な賭け金」として受け取ってください。実務では、算出額の何分の一かに抑える運用が一般的です。