父ダイワメジャー、20年前で言うと〇〇〇〇〇?

競馬予想以外もデータ遊びを思いついたときに書いていきたいと思います。
まずはこんなものから。お付き合いいただければ嬉しいです。

種牡馬イメージ1995_2016

競馬予想の中で「父〇〇〇なのでダ1200はピッタリ」みたいな会話がよくあります。もちろん適当に言っているわけではないはずで、そのコースでの勝率や複勝率などを元に他の種牡馬と比較したうえで述べていることと思います。たまにTwitterに遊びでアップしたりしてたのですが、あらためて可視化してみました。

上の図はコレスポンデンス分析という手法を使い、種牡馬の距離別勝利数を集計し1枚のマップに描いています。多くの種牡馬を対象にすると図が馬でぐちゃぐちゃになってしまうのでTop20に限定していますが、その20頭の相対的な関係として、各種牡馬が特徴的に勝利をあげている距離はどこかを示したものです。近くにあるものが関係が強い種牡馬です。馬同士が近いものは傾向が似ているということになります。

こちら、あくまで特徴なので種牡馬の能力自体はあらわしていません。芝2400mの近くにハービンジャーがいますが決して少し離れているディープより2400で強いということではなく、ざっくり「その種牡馬のイメージ」ととらえていただければ。もちろんデータ分析した結果ですが、イメージなのでポジション自体には競馬ファンの皆さんにはそんなに違和感はないはずです。

これは少し違う分析手法ですが、プロ野球選手のデータ、打率、本塁打数、犠打数などを使って打者の特徴を分類するようなこともできます。見事に打順に近い分類になります。この現役馬バージョンもいつかやりたいです。

1780174_481266665334183_77665043_o

10014777_481266755334174_1529806159_o

ただ、違和感ないものをあらためて図にしてもつまらないので、もうひと工夫してみました。種牡馬は2015-2016の平地全競争の実績データを使った「現在のイメージ」ですが、これに20年前、1995-1996年時のデータも足して分析をしてみました。時代が違うのでやや強引ではありますが、距離体系はそれほど変わっていませんので、20年の時を超えて当時の種牡馬との傾向比較をしています。四角で数字が書かれているものに、20年前の種牡馬があてはまります。

20年前は比較的どの距離にも近くない種牡馬が多い印象を受けました。今ほど棲み分けがすすんでいなく、芝もダートも距離も幅広くこなしており、スペシャリスト種牡馬が今より少なかったのかもしれません。

さて、一体どの種牡馬になるでしょうか。
当時からの競馬ファンには想像がついてしまう部分もあるかもしれません。この図を見ただけで当てられる人、相当凄いなと思いますが。
Top20は以下になります。お時間あるときに、一部分でもお楽しみいただければ幸いです。

再掲です。
種牡馬イメージ1995_2016

◎1995-1996年 平地競争勝利数Top20
サンデーサイレンス
ブライアンズタイム
ノーザンテースト
トニービン
サクラユタカオー
リアルシャダイ
ジェイドロバリー
アンバーシャダイ
クリスタルグリッターズ
ニホンピロウイナー
キンググローリアス
ミスターシービー
シンボリルドルフ
サッカーボーイ
スリルショー
ブレイヴェストローマン
ホリスキー
マルゼンスキー
タマモクロス
ウッドマン

よろしくどうぞ。
※広告の下に番号記載した種牡馬リストも書いておきます。

 

 

 

 

 

———
1.ニホンピロウイナー
2.クリスタルグリッターズ
3.スリルショー
4.ウッドマン
5.キンググローリアス
6.ブレイヴェストローマン
7.ホリスキー
8.ジェイドロバリー
9.ブライアンズタイム
10.マルゼンスキー
11.ノーザンテースト
12.アンバーシャダイ
13.ミスターシービー
14.シンボリルドルフ
15.サクラユタカオー
16.サッカーボーイ
17.リアルシャダイ
18.タマモクロス
19.トニービン
20.サンデーサイレンス
———

♯051「競馬回顧伝93 古馬短距離編」


マイル王者の果敢な距離挑戦。日本競馬史に残る名スプリンター誕生。
牡馬以上の爆発力や完成度を持つ牝馬も揃え活性化する短距離シーン。

主な活躍馬
ヤマニンゼファー
シンコウラブリイ
サクラバクシンオー
ニシノフラワー

よろしくどうぞ。

♯051「競馬回顧伝93 古馬中長距離編」


春は王者に挑む刺客の一撃。秋は名優の引退と奇跡の復活。
世代交代の激しい戦いが繰り広げられます。

主な活躍馬
メジロマックイーン
ライスシャワー
メジロパーマー
レガシーワールド
トウカイテイオー
ナイスネイチャ
イクノディクタス

よろしくどうぞ。

♯051「競馬回顧伝93 3歳牝馬編」


西の一等星ベガを中心にトライアルを勝ち上がった馬が挑む構図。
現在の馬の祖母あたりに出てくる馬が多いですね。

主な活躍馬
ベガ
ユキノビジン
ホクトベガ
ノースフライト
マックスジョリー
ヤマヒサローレル
ケイウーマン
スターバレリーナ

よろしくどうぞ。

♯051「競馬回顧伝93 3歳牡馬編」

元々別のサイトに掲載していくつもりだったのですが、こちらに統一します。初期のやつは録音環境も悪く喋りもグダグダだったので内容見直し録りなおしています。
こちらは時間ができたときの不定期更新ですが、ダークホースラジオの原点とも言えるので、良かったら聴いてください。

初めての方のためにこの「競馬回顧伝」の簡単な説明を。
これは自分が競馬を始めたころの 20 年以上前のレースや競走馬を振り返って語っていく 歴史資料館のようなものです。
いや、歴史資料館にある音声解説のようなものです。
レース結果や活躍した競走馬の話はもちろん、血統にも焦点をあてて、まあ残念ながらレース映像は流せないですけど、これを聴いた後に映像を見たり戦績や血統調べたりくなっちゃうような、当時を知っている人、最近競馬を始めた人、競馬好きの皆さんに楽しく興味を持って聴いていただけるように頑張って喋ります。
3 歳牡馬、3 歳牝馬、古馬中長距離、古馬短距離、レース体系が整ってきた年から古馬牝馬、ダートも入れていきたいと思います。

まずは1993年からです。不定期ですが少しずつアップしていきますので、聴いてみて『懐かしかった』『次の年も聴きたい』『こんなことも喋って欲しい』などと思ってもらえるように内容考えていきます。たまにはスペシャルと題してゲストをお呼びして昔の競馬を語る時間も作りたいと思っていますのでよろしくお願いします。


では、まずは3歳牡馬編です。
それぞれ特長を持った「3強」を中心にクラシックを争います。
日本の伝統血統、欧米の新たな血統、入り混じっていて面白い時代です。

主な活躍馬
ウイニングチケット
ビワハヤヒデ
ナリタタイシン
マイシンザン
ガレオン
ネーハイシーザー
マイヨジョンヌ
アンバーライオン

よろしくどうぞ。

重回帰分析を使って競馬の予測モデルを作ってみた

※本記事のアップデート、続編をこちらで書いています。

前回、2017年は統計学を使った競馬の予測にチャレンジしてみようなんてことを書いてしまいました。まだまだ試行錯誤中なのですが、どのように予測をするのかが今回の記事になります。よろしくどうぞ。しつこいですが「よろしくどうぞ」はスーパー競馬の吉田均さんのオマージュです。

おおまかにはこんなステップです。

予測モデル作成のステップ
 1.競馬予想のファクターを整理する
 2.データを準備する
 3.タイムの予測式を作る
 4.出走馬のタイムを導き出す

 

1.競馬予想のファクターを整理する

まずは「競馬予想」についてあらためて考え、整理していきます。ここが予測のすべてを決めるといっても過言ではありません。勝ち馬をどう予測するのか(したいのか)を決めます。考案者の視点や思想が大いに繁栄される魂の作業です。ただし、何が勝ち馬への道しるべになるのかまだ見当がつきません。ですからまずは考えられる要素をできるだけ数多く出していきます。思いついたものはなんでもいいです。この段階では。
仕事でも何か新しい企画を考えるとき、まずはみんなでブレストしてアイデアを出し合う、良し悪しはともかくとにかく数を出してみる。それと同じです。

競馬書籍、競馬新聞、知り合いの競馬予想ラジオ、フジテレビONEでやっている競馬予想TV!などを参考にしながら、競馬予想のファクターを書き出していきました。統計学や重回帰分析という言葉と比べるととてもアナログな作業です。場外馬券場にいるおじさん達にも協力してもらいたかったです。

デフォルメしてますがざっくりまとめるとこうです。なんとなく「まあこんな感じで予想するよね」になっているかと思います。この「まあこんな感じ」は大事です。ここで出てきた要素でモデルを作っていくわけですから。場外馬券場にいるおじさんが必要というのは冗談でもなんでもなく、本来は何人かの競馬好きで集まってワイワイやるのがいいと思います。色んな視点から考えて何か足りないなと感じればまた要素を足していきます。

%e4%ba%88%e6%83%b3%e3%83%95%e3%82%a1%e3%82%af%e3%82%bf%e3%83%bc

魂の完成です。こちらをベースに予測モデルを組み立てていきます。

 

2.データを準備する

この図をアップロードすると人工知能が画像解析してJRA-VANと照合し勝ち馬を導き出してくれる、なんてことは残念ながら今のところできません。(5年後くらいはわからないと思います)
個々の項目に対応する具体的なデータを検討します。ズバリのデータもありますが、データを変換するもの、自分で作るものもあります。詳しい方ならば簡単に抽出できたと思うのですが文系の私には難しく、JRA-VANにある競馬予想支援ソフト「TARGET」からデータを出力しExcelやAccessで加工しました。

分析対象は過去5年分のレースにしました。約25万頭分のデータになります。ダウンロードをしているとあらためて競馬のデータ量の膨大さに驚かされます。

そもそも勝ち馬を予測するといっても、具体的に何を予測するかを決めなくてはいけません。が、この段階ではまだ絞り切れていませんでした。大きく分けると「着順」か「タイム」なのですが、自分は後者を想定していました。前回のブログにも書きましたが、走破タイムが予測できれば超カッコいいわけですよ。1000m時点のタイムなどに置き換えれば展開予想とかもできるわけですから予測に深みが増すかなとも思いました。ですが、最終的にモデルを組む中で走破タイムそのものを予測することはあきらめました。当然なのですが、予測の根拠の大半を占めるであろう馬の実力以外に左右される要素が多すぎました。ペース、出走メンバーのレベル、芝の状態などですね。となると着順になるのですが、できればレースレベルみたいなものも反映したい、指数的なものにして「おーこのタイムはG1級だ!」みたいなことも言いたくて(これも超カッコいいから)最終的にはTARGETで公開している馬場差を考慮した補正タイムを予測することにしました。これは「100=1000万下を勝てるレベル」「1は0.1秒」という基準値があり、過去データも豊富にあるので、こちらを予測対象とすることで勝ち馬とレースレベルの推測が両立できます。最初は自分で補正タイム作っていたのですが更新が大変なので挫折しました。使える2次データはありがたくどんどん使っていきます。

過去5年の競争成績をダウンロードしたり
%e9%81%8e%e5%8e%bb5%e5%b9%b4%e3%81%ae%e7%ab%b6%e4%ba%89%e6%88%90%e7%b8%be

前5走のデータを結合したり
%e5%89%8d5%e8%b5%b0%e3%81%ae%e3%83%87%e3%83%bc%e3%82%bf%e3%82%92%e7%b5%90%e5%90%88

騎手と調教師を年度ごとの成績でランク付けしたり
%e9%a8%8e%e6%89%8b%e8%aa%bf%e6%95%99%e5%b8%ab

種牡馬、母父を産駒の能力やコース適性でランク付けしたり
%e7%94%a3%e9%a7%92%e5%b9%b3%e5%9d%87%e6%8c%87%e6%95%b0

%e3%82%b3%e3%83%bc%e3%82%b9%e9%81%a9%e6%80%a7

しながら分析用データを完成させていきました。
最終的に過去5年約25万頭分について以下のデータを用意しています。まだ追加検討したい項目はありますが、まずは極力シンプルにしています。

属性レース条件能力
牡馬過去5走の3コーナー位置取り
牝馬1走前の3コーナー位置取り
セン馬コース1走前の上り3F 1位経験
年齢レースの格1走前の対2走前指数変化
調教師能力馬齢限定1走前の対過去平均指数変化
種牡馬能力牝馬限定1走前の指数
種牡馬コース適性     馬場状態2走前の指数
母父能力騎手能力3走前の指数
母父コース適性斤量4走前の指数
出走頭数5走前の指数
枠番過去5走の上がり3F1位経験
馬番過去5走の平均指数
乗り替わり騎手能力変化過去5走のベスト指数
前走からの距離変化
前走からの斤量変化
前走からの枠順変化
前走からの馬番変化
前走からの芝・ダ変化

 

3.タイムの予測式を作る

ようやく分析のスタートラインです。タイトルにもある通り「重回帰分析」という手法を使います。こちらのサイトの説明を引用させていただきます。

例としてある店の顧客に対する販売実績と、顧客の属性の関係を分析します。目的変数として、ある年の各顧客の購入額をとります。説明変数として、顧客の属性(年齢、性別、家族人数、年収など)を用いることとします。すなわち、(購入額)= a ×(年齢)+ b ×(性別)+ c ×(家族人数)+ d ×(年収)+(誤差)という式において、a,b,c,d (これを偏回帰係数といいます)の値と、誤差項の値を求めます。この式に、新しい顧客の属性データを入れれば、購入額が推定できるというのが、(重)回帰分析の考え方です。

ここでいう(購入額)がタイム、(年齢)(性別)(家族人数)(年収)が過去の成績、斤量、馬場状態、鞍上強化、種牡馬などになります。それぞれの要素に係数をかけ算することで、過去走った馬のタイムに近くなるような式を作ります。そして、この式にこれから走る馬の情報を代入してタイム、勝ち馬を予測します。長くなりましたがこれがやりたかったんです。

計算には統計ソフトを使って行います。IBMの予測分析ソフトSPSSを使いました。各データを投入していきます。

spss1

例えば、京都芝1600mの過去5年出走馬4021頭のデータを使って計算すると、こんな式ができます。競馬ファンが知っている用語に謎の数値がかけられてタイムが計算されます。あらためて見ると不思議な式ですが、もしかしたらある競馬ファンの脳内を可視化するとこんな風になっているのかもしれません。

京都芝1600mのタイム(TARGET補正タイム)=(新馬戦)*-16.7+(未勝利戦)*-13.2+(500万下)*-7.1+(1000万下)*-5.2+(2歳限定戦)*-1.6+(3歳限定戦)*-3.5+(牝馬限定戦)*1.7+(重馬場)*-4.5+(不良馬場)*-8.9+(牡馬)*1.8+(騎手ランク)*0.2+(調教師ランク)*0.1+(種牡馬適性)*0.1+(母父適性)*0.03+(出走頭数)*-0.2+(馬番)*-0.2+(前走ダート)*-2.7+(距離変化)*-0.003+(乗り替わり騎手能力変化)*-0.1+(斤量変化)*-0.6+(1走前のポジション)*-1.3+(前5走上がり1位経験)*1.2+(1走前のタイム指数)*0.1+(前5走平均タイム指数)*0.2+(前5走ベストタイム指数)*0.2

複雑な式ですが、それぞれの(  )に出走各馬のデータを当てはめていけばいいのです。レース条件など「該当/非該当」形式なら「1 or 0」、タイム指数や斤量などはそのままの数値をかけていきます。計算しやすくするために出馬表データを加工する必要がありますが変換表を作ってしまえば問題ありません(スキル不足によりたくさんミスしましたが)。コース別に式を作りました。ちなみにこの京都芝1600mの決定係数は0.71となっています。1に近い方が予測モデルとしては優秀です。明確な基準はないのですが0.71は「なかなか上手くタイムが予測できているね」です。

上記の式を見て「なぜこの観点、あの観点は計算式に入ってないの?」と思われるかもしれません。実はこの倍以上の項目を投入しているのですが、重回帰分析の手法で、精度高くタイムを予測する上で変数が仕分けされていき、最終的に残った項目がこの式になります。

 

4.出走馬のタイムを導き出す

ちなみにこのブログを書いているのは2017年1月7日(土)です。明日は同条件の重賞レース「シンザン記念」が行われますので、この数式に出走馬データを入力してタイム予測をしてみました。

%e3%82%b7%e3%83%b3%e3%82%b6%e3%83%b3%e8%a8%98%e5%bf%b5

過去5年の結果にある勝ち馬の指数を見ると、今回導き出されたスコアのトップ「ペルシアンナイト:102」は十分勝利できるレベルにあることがわかります。出走馬のスコアを見るとその年のレベルや混戦具合を推し量ることもできそうです。過去2年よりもややレベルの高いレースになるかもしれません。

統計の専門家から見ると穴があるかもしれませんが、このような考え方で競馬の予測式を作ってみました。レースの結果と照らし合わせながらモデルは修正していこうと思いますし、精度が落ちなければ違った視点のデータも加えてみたいと思っています。血統の特徴をより出すためにダビスタの種牡馬データをそのまま使ってみるとか。

はい。こんな感じでしばらくはこのブログやTwitterで競馬予測をしていこうと思います。
とりあえず明日のシンザン記念はいい結果になってほしいものですが、カスリもしなかった場合は上記のレース予測部分の記事だけが違うレースにひっそり更新されていきますのでその点は何卒ご了承ください。

最後まで読んでいただきありがとうございました。
よろしくどうぞ。

※追記
シンザン記念の結果です。
バチっと決めたかったところですが追加変数を検討して予測精度をさらに高めたいと思います。

2017年はマイニング競馬(テレ東でもロブロイの母父でもなく)

こんにちは。今年もダークホースラジオ、よろしくお願いします。よろしくどうぞ。

この番組では「サトノダイヤモンドさん」や「ウイポ優駿モード」に代表されるように、競馬を色んな角度から楽しむことができればと思って始めたもので、いわゆる王道ネタの競馬予想は番組の中では取り扱うことはない(予想しない、予想外だからダークホースって名前にしてます)のですが、最近、競馬予想にも新しく面白いことが起きているなということを実感しています。

先日こんなイベントに参加してきました。ウマナリティクスという「競馬をデータ分析の観点から語り合う」というもので、データサイエンスの観点での様々な競馬予測の取り組みが紹介されていました。netkeibaさんも取材に来ていてイベントの記事が取り上げられてました。つまり、そういう流れがきているということです。

僕はこのイベントで登壇されていたような企業やエンジニアの方々のように人工知能や機械学習を駆使して競馬予測を行うようなことまではできないですが、そのプログラムに投入しているデータ自体はいわゆる競馬予想に日常的に使うようなベーシックなものだったように思えました。だから、人工知能とはいかないまでもそのベースとなるような統計学の知識、それも入門レベルの(だいたい統計検定2級くらいあれば問題ないかと)ものでもある程度イケるんじゃないか、これを感じることができたのが収穫でした。

そんなこともありタイミングよく年も明けたので、2017年は統計学を使った競馬予測をしてみたいと思います。

予測の性質上、出てきた予想については「だってそういうモデルなんだもん」としか語ることができなく、相変わらず競馬予想の番組はできないですし、予想の参考にして欲しいなんてことも恐れ多いですが、統計学やデータ分析を軸に、その見せ方で何か面白いものができればと思っています。血統ビームの理論はよくわからないけど、あのチャートとトークがあるから血統で競馬が楽しめるみたいな、そんな感じです。

まずはこの年末年始、JRA-VANのデータを使ってExcelやAcceess使ってコツコツ整えて分析し予測モデルらしきものはできあがりました。基本的には走破タイムを予測するモデルです。ただ、ご存知の通りタイムは馬の力だけでは決まらなく不確定要素が多すぎます。初めは純粋な走破タイムでモデルを作っていました。だって勝ちタイム予測できたらカッコいいじゃないですか。ですがこれは早々にあきらめました。ただ、TARGETのように馬場差を考慮して補正タイムを公開しているサービスもあったりしてこういう2次データも利用させていただきながらモデルを構築しています。一方で、騎手や種牡馬の成績は自分でランクづけなどをして使っています。京都ダ1400でのパイロの偏差値は63ですとか。オリジナルの指数を作ると更新が大変なのですが、そこは分析の面白さとのバランスですね。予測の精度次第ですが種牡馬の性質とか定性的なデータも数値に変えて使ってみたいです。ダビスタの種牡馬パラメーターそのまま使って馬券の精度上がったら面白いかなと。

例として2016年の有馬記念の予測と着順がこちらです。これは中山芝2500mの過去5年の出走馬630頭から標準化された予測タイムのモデルを作った結果です。なぜ自分はアドマイヤデウスをあんなに買ったんだとこれ見て猛烈に悔やみました。モデル作成は思ったよりも大変でしたが、今度その作成過程も公開したいと思います。中身は結構アナログで、やってることは競馬予想ファクターの整理そのものだったりします。

%e6%9c%89%e9%a6%ac%e8%a8%98%e5%bf%b5

というわけで、どんな頻度になるかわかりませんがこのブログやTwitterでメインレースを中心に予測をしていく予定です。また、以前「競馬ファンの分析」などもやったことがありますが、馬券のことだけでなく、競馬にまつわることは幅広く分析対象にしていこうと思います。一口馬主の出資馬選定とかもいいかもしれない。
2017年は「競馬データマイニング」で新しい楽しみ方にチャレンジ、「競馬とプロレス」できるようなことも引き続き考えていきますので、今年もダークホースラジオをよろしくどうぞ。