オルトプラスエンジニアの日常をお伝えします!

2016年 有馬記念の予想

※この記事は「AltPlus Advent Calendar 2016」の23日目の記事です。

こんにちはこんにちは、shohojiです。

今週末は競馬ファンお馴染みのG1レース「有馬記念」が開催されますね。
有馬記念は、今年活躍した馬たちが一堂に会し、今年最後の活躍馬を決めるグランプリレースとも呼ばれる大きなレースです。

ダービーズキングの伝説やダービーゲート、ダービーロードなど、数々の競馬ゲームのを企画や開発をしてきたこの私が、そんなビッグレースがあるのに無視できるはずはありませんので・・・
今回は有馬記念の予想記事を書いてみようかと思います。

とはいえ、この記事は、QiitaのAltPlus Advent Calendar 2016の23日目の記事
ここでは技術的な話を書く必要があるとのことなので
今回は私が予想するのではなく、プログラムで有馬記念を予想してみようと思います。

なにで予想する?

競馬予想をする上で、様々なアプローチはあるとは思うのですが
今回は出走馬の過去のレースの走破タイムから予想してみようと思います。

とりあえず、実際の競馬ではレース展開、相手関係との駆け引きなどもあるので単純にタイムが早ければ強いというわけでもないのですが 競馬の専門誌などでも、ベストタイムが掲載されていたりするぐらいには重要な要素です。
普通に考えて、平均的にタイムが速い馬の方がポテンシャルは高いはず。
今回は出走馬の過去のレースから、それぞれの平均タイムを算出して、順位付けしてみます。

とはいえ、例えば距離が違う、斤量が軽ければ速くなるなど、いろんな条件で結果が変化するのが競馬。
単純に平均タイムを出しても全く意味のない数字になります。
なので今回は、タイムの比較ができるように、過去のレースが、全て今回の有馬記念と同じく、3歳以上の重賞、2500m、良馬場の条件で開催されていたとしたらどんなタイムだったのか?
というタイムの置き換えを行った上で、平均タイムを算出してみます。

どうやってタイムの置き換えをするか?

  1. タイムが変動する大きな要素でグループ化
    • 距離

    • 馬場状態(良、稍重、重、不良)

    • レースのクラス

    • レースの年齢条件(2歳、3歳、それ以外)

    • 競馬場

    で過去5年のログをグルーピングし、それぞれの条件の平均勝ちタイムを算出します。
    その中から「有馬記念」の中山、2500m、重賞、良馬場を「基準タイム」とします。

  2. 各馬の出走ログから、走ったレースと同じ条件の平均勝ちタイムと、基準タイムとの「タイム差」を算出

  3. 出走馬の実際の走破タイムに、タイム差を反映し「想定タイム」を生成

  4. 各馬の想定タイムから「平均タイム」を算出

実際には馬には距離適性とかもあるので、距離があまり違うレースや古すぎるレースを参考にしても仕方ないので
出走馬の過去2年半(2年前の秋の戦績から)の2000m〜3000mまでの芝のレースだけを対象にします。

予想タイムは?

だらだらと長くなるのもあれなので、それらを考慮して実際に平均タイム(予想タイム)を計算してみた結果がこれです。

f:id:shohojiap:20161222143434p:plain

前走、クラシック三冠最後のレース、菊花賞を制覇した「サトノダイヤモンド」がタイム1位となりました。

実際の競馬でもおそらく2番人気になりそうな馬が1位になりましたね、おそらく1番人気になるであろう、サブちゃんこと北島三郎さんの所有馬「キタサンブラック」は0.3秒差の5位、上位人気の馬はタイム的な裏付けもありそうですね

2位〜4位のタイム上位に入った、「ミッキークイーン」、「サムソンズプライド」、「アドマイヤデウス」などは穴馬ですが、タイム的には狙って見ても面白いのかもしれません。

ちなみに6位の「シュヴァルグラン」はハマの大魔神こと佐々木主浩さんの所有馬です。

さあ果たして予想タイムと実際のレース結果はどの程度リンクするのでしょうか?
有馬記念は12/25日の15時25分発走予定です。