♯052「ダークホースラジオPOG 2017-18開催概要」

SnapCrab_NoName_2017-4-22_20-58-18_No-00

ダークホースラジオのポッドキャストTwitterでの告知の通り、今年はPOGを開催します。競馬好きの方であれば初心者博士老若男女問わずお気軽にご参加いただければと思います。来年のダービーまで参加者の皆さんとワイワイ楽しく遊びたいと思いますので、よろしくお願いします。

GWを目途にエントリーサイト作ります。大まかなルールやスケジュールなどはこちらの開催概要をご覧ください。
よろしくどうぞ。

♯053「ダークホースラジオPOG 2017-18開催決定」

IMG_5635

今年のダークホースラジオの目玉企画はPOGです!いつかやりたいと思っていました。
サトノダイヤモンドさんでお馴染み野田さんを引っ張り出しPOG企画を開始しました。老若男女、初心者から競馬博士までみんなで楽しくワイワイ、それでいて熱い戦いができればと思います。新馬戦が始まる6月に向けてこのホームページやTwitterで随時開催概要やルールをお伝えしていきます。

今回はPOGを知らない野田さんに説明する回。まずはこちらを聴いてPOG熱が高まれば嬉しいです。参戦表明大歓迎、こちらからお声がけをさせていただくこともあるかもしれません。よろしくどうぞ。

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

こちら、「昔の競馬のことをただ喋り続ける」「競走馬をゲストに呼んでインタビューする」「あの不朽の名作クラシックロードを復活させる」なんて遊びをやっているネットラジオなのですが、最近は競馬予測のことばっかりやっています。楽しみに聴いてくれていたごく一部の方ホントすいません。最近こっちにハマってしまって、桜咲くころからまたやっていきたいと思いますので引き続きよろしくお願いします。

さて、前回の記事をたくさんの人が見てくれたようで、記事のクオリティはともかく、ありがとうございます。なんか「競馬 重回帰分析」で検索すると上位の方に出てくるようで、繰り返しますが記事のクオリティはともかく、この分野に興味がある人がたくさんいるということなのでしょう。スポーツとデータの活用やその奥深さは野球のマネー・ボールが有名ですが、おそらく大谷翔平よりそこらへんの未勝利馬1頭のデータの方が豊富にあるでしょうからスポーツインテリジェンスとしての競馬の楽しさはまだまだ広がっていきそうな気がします。netkeibaでもついにAIによる予想が始まりました。プロレス、格闘技で言うと他団体からの侵略者です。怖いですね。賛否両論出るでしょう。でもそうやって盛り上がるものかと思います。

最近は自作した予測式をもとに馬券を買っています。まあ当たったり外れたりはあるのですがレースを終えるたびに「こういう観点のデータが抜けている」「データの基準を変えよう」「うわ計算ミスしてた」など、いろいろな発見があります。何度か修正を繰り返したのち最近あらためて作り直したので、今回はその作成過程をまた書いていきたいと思います。

競馬予測については、人工知能や機械学習の使い手、統計学のプロフェッショナルのように上には上がたくさんいますので、私の場合ファッション競馬予測の域は出ていないでしょう。ただ、こういったアプローチに興味がある人が結構いることはわかってきました。なので、私のような「掛け算、割り算、初歩的な統計学のレベルでもこれくらいのことはできる」を伝えることには多少の価値があるかもしれません。頑張ればExcelだけでもそれなりの予測できますし、私がそうです。統計学やオフィスソフトの講座に出て勉強することを考えて、それを好きな競馬で無料で練習できると思えば、仮に多少馬券で損をしたとしても十分お釣りがくると思います。「人生の回収率を上げる」そんな意味が持たせられれば良いと思います。

それでは、長くなりますが前回よりもう少し詳しく「重回帰分析を使って競馬の予測モデルを作ってみた」を書いてみたいと思います。よろしくどうぞ。毎度恐縮ですが「よろしくどうぞ」はスーパー競馬の吉田均さんのオマージュです。

こんなステップで書いていきます。

予測モデル作成のステップ
 1.競馬予想のファクターを整理する
 2.データを準備する
 3.予測式を作る
 4.予測指数を算出する
 5.指数の勝率から期待値を算出する
 6.指数を自動的に算出する

1.競馬予想のファクターを整理する
まずは予測を構造化する作業。「競馬予想」そのものについて考え、整理していきます。前回と違って一度モデルを作成し運用しているので「この変数は予測に使える、使えない」「こんなデータがあれば予測がより多角的になる」「このデータならば出力・加工することができる」などがわかってきています。今回は使えるデータの勘所を持ちつつ整理できました。

前回作成した以下の考え方をベースとして

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

「どんなデータが競馬予測に必要で使えそうか」
ファミレスでポストイットに書き出して(たまたま隣の人が週刊Gallop読んでて恥ずかしかったです)、家の壁に貼って構造整理しました。

IMG_5676

・競走馬(性別や血統などその馬の持つ属性)
・競争(開催条件やレース適性などレースの諸条件)
・競争能力(過去実績などその馬の能力)

の3つに分類することができました。またアップデートするときはここに立ち戻り何が不要、または不足かを考えます。また、真ん中にあるように予測する対象は「走破タイム」です。理由は前回も述べましたがカッコいいからです。詳細は後ほど。

2.データを準備する
アナログからデジタルへの変換作業。紙に書いた内容に対応するデータを作っていきます。このパートが全作業の8割近くを占めます。「性別」「年齢」は出力データがそのまま使えますが大半は再計算をする必要があります。例えば「種牡馬の能力」を予測に入れるとします。では「能力」とは何を指すのでしょうか。その定義を自分で決めて該当するデータを出力し加工しなければいけません。さらにモデル作成に使用するデータも過去5年分以上は使うことになります。5年間でざっと25万頭分です。「種牡馬の能力」ひとつでも25万頭分のデータが必要ですし、「母父の能力」も作りたくなります。その繰り返しです。

それでは、加工した代表的なデータを中心に紹介していきます。

【血統】
代表的なものは種牡馬になりますが、大きく「コース適性」と「産駒レベル」に分けて考えました。前者がコース別の勝率や複勝率、後者がどの程度のレベルの馬を輩出しているか、です。例えば「○○○は京都ダート1200の複勝率は凄く高い。だけどそのデータは未勝利戦ばかりのもの」みたいなものは分離すべきと考えたからです。

「コース適性」はコースごとの種牡馬の複勝率を使っています。勝率も連対率もあるのですが、種牡馬の相対比較では大差ないので複勝率だけにしています。「産駒レベル」は芝、ダートごとの全産駒のタイム指数の中央値を使っています。一般的なのは平均値ですが、レースをあきらめた大敗馬などは極端に指数が低くなり産駒レベルを正しく表せない可能性があるためです。全コースの全種牡馬なので2万頭近くのリストになっています。

SnapCrab_NoName_2017-3-12_23-58-30_No-00

「コース適性」は種牡馬の系統、母父、母父の系統でも同様のデータを作っています。
生産牧場も同様の考え方で複勝率、産駒レベルを算出しました。余談ですが生産牧場は予測するうえで重要度が高いファクターで「ノーザンファーム」というだけで産駒レベルは全体と比べ5馬身ほど違います。まさに「競馬は農業。血を育むのは人」ですね。

【ペース】
競馬予想支援ソフトのTARGETにはRPCIという「上がり3ハロン前後で、どれだけ速度が変わったか」を示す指標があります。RPCIが50前後だと平均ペースという一応の目安があるようですが、上がり3ハロン前後のバランスはコースによっても大きく異なるので再計算をしました。「阪神ダ1200mのように平均RPCIが45になるような前傾ラップで48はハイペースとみなさない」みたいなことです。コースごとの平均RPCIを算出し、各レースが比べてどの程度離れているか、つまりRPCIを偏差値化することで、どのコースでも同じ基準でハイ、ミドル、スローペースを判別できるようにしました。25万頭分の前5走のデータすべてを判別しています。

SnapCrab_NoName_2017-3-12_23-56-41_No-00

ペースのデータを単独で予測に使用することはないですが「どのペースでどんな競馬をしたか」に使います。そのセットになるのが次の「脚質」です。

【脚質】
脚質はTARGETに「逃げ~後方」までの5種類のデータがあるのですが、名義データのため分析がしやすいように数値データに変更します。また「先行」といっても頭数によっては道中2番手も5番手も「先行」となってしまいます。その意味をもう少し細かく区分したかったためひと工夫しました。わかりやすい数値データとして番手の情報もあるのですが、6頭立てと18頭立ての3番手は位置取りが全然異なるので、全レースある程度共通で扱えるよう「3コーナーの番手÷出走頭数」の相対的なポジションで表すことにしました。1だと最後方ということになります。また、「逃げ~後方」の脚質データはカテゴリ化されていてわかりやすいというメリットはありますので、相対的ポジションと脚質データを比較して置き換えができるような基準値も作っています。下記の分析から「3コーナーの番手÷出走頭数」が0.11以下だとほぼ「逃げ」と判定できます。こちらも過去5年約20万頭、前5走の結果を計算しました。前5走の平均をとるとその馬のおおよその次走の脚質を判別することができました。出走馬の脚質および位置取りのデータとして活用します。

SnapCrab_NoName_2017-3-13_12-55-52_No-00

【ペース×脚質】
上記2つのデータを掛け合わせることでまた違った視点を加えることができます。わかりやすいところでは「前走強い競馬をした馬」の判別です。「ハイペースで逃げた馬」「スローペースで脚を余した馬」を判別しフラグを立てておきます。例えば「前走ハイペースで逃げたけど負けた馬」が次走パフォーマンスを上げるという関係性があれば、このフラグがついている馬はプラスの予測スコアが出てくるようになります。

今回はタイムを予測するために使用していますが、脚質やペース関連のデータは「このレースはどんなペースになるか」「どの馬が逃げるか」といった違う予測にも活用できそうです。この観点も機会があれば色々試してみたいと思っています。

【その他】
上記は定義を作るところから考えなければいけないものですが、その他では過去のレース条件や結果のデータを使用して単純な計算(データは膨大ですが)で出すものが多いです。わかりやすいところでは前走からの距離や斤量の変化です。計算は単純な引き算で出せるものですが、データ処理上は一工夫入れています。例えば「距離短縮は有利だけど延長が不利というわけではない」のようにその効果は一方向ではないので、距離変化ならば「短縮」「維持」「延長」の3つのカテゴリを用意してそれぞれ該当するフラグを立てています。最初は数値データを使っていたのですが、3000mなど長距離からの臨戦過程の馬で異常値が出る(京都金杯のエアスピネルとか)ことがあったので、単純に「短縮」「維持」「延長」にしています。こういう部分が一度運用してみて得た知見だったりします。

このような処理を重ねていきながら、最初の写真にある紙に対応したデータが完成します。途中で作業を止めると何をしていたかよくわからなくなりますのでだいたい徹夜作業になってしまいます。産みの苦しみですね。

SnapCrab_NoName_2017-3-13_13-20-37_No-00

3.予測式を作る
ようやくここからがスタートです。説明が遅くなりましたが、写真の真ん中に「走破タイム」とあるように、今回の目的は「出走馬のタイムを予測する」ことです。前回の記事でも書いたのですが、タイムが予測できれば超カッコいいというのが第一の理由です。ただ、ご存知の通りタイムは出走メンバー、ペース、馬場状態に大きく左右されてしまいます。直前の状況やレースが始まらないとわからない要素が多いため、タイムそのものを過去データだけで精度高く予測することは厳しいでしょう。元々タイムから着順を予測したいのですが、「この馬は3着」よりもレースレベルのようなものを反映して「この指数はG1級だ」「過去5年のレースよりレベルが高いメンバー」みたいなことを言いたいわけです(これも超カッコいいからです)。という背景から予測対象はTARGETで公開している馬場差を考慮した補正タイムにしています。TARGETを使ってデータを出力し、過去の補正タイム実績も予測のために使っているので、データを扱いやすいというメリットがあります。補正したタイムなので以降では「指数」とも表現します。

予測には「重回帰分析」という手法を使っています。前回記事と重複してしまいますが、こちらのサイトの説明を引用させていただきます。

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

例えばレース結果を種牡馬の適性だけで説明をすることは難しい(血統の切り口から正解にたどり着くというのとは別の話)です。レースは様々な要素の総合力で決まって(多分そうなのですがそう仮定して)いるとして、複数の要素から受ける影響の有無や強弱を統合して算出しているのがこの重回帰分析です。 上記引用の(購入額)が補正タイム、(年齢)(性別)(家族人数)(年収)が血統、斤量、馬場状態、騎手、過去の成績などの各種データになります。それぞれの要素に重要度を示す係数をかけ算することで、過去走った馬の補正タイムに近くなるような式を作ります。そして、これから走る馬の情報を代入し、次走での補正タイムと勝ち馬を予測します。

例えば、東京芝1600mのタイム(馬場差補正済み)の予測式はこちらです。過去5年の出走馬4039頭のデータを使って計算しています。

47.1+(牝馬)*-0.5⁺(年齢)*-0.7+(調教師複勝率)*4.8+(生産牧場産駒レベル)*0.1+(母父複勝率)*2.5+(未勝利)*-5.1+(1000万下)*3.8+(1600万下)*8.0+(G1)*12.2+(2歳限定)*-7.3+(3歳限定)*-6.9+(牝馬限定)*-0.5+(馬齢)*7.3+(別定)*10.3+(重)*-2.8+(不良)*-2.6+(騎手複勝率)*8.2+(負担重量率)*-53.6+(出走頭数)*-0.2+(馬番)*-0.1+(レース間隔週)*-0.1+(脚質後方)*-0.5+(ダ→芝)*-0.7+(距離延長)*-1.6+(距離短縮)*0.7+(前走からグレード下降)*-1.3+(前走からクラス維持)*-1.3+(前走からクラス下降)*-2.1+(鞍上強化)*-0.8+(鞍上弱化)*-0.9+(前走からの種牡馬適性変化)*4.2+(前走上がり3位以内)*0.6+(タイム連続上昇)*1.0+(近3走ハイペース先行経験)*1.1+(前走タイム)*0.1+(近3走平均タイム)*0.2+(近5走ベストタイム)*0.3

長く意味不明な式を書いてしまいましたが、()の中に出走する馬の情報を入れていくと今回の補正タイムを予測することができます。この中でわかりやすいのは「馬番」です。*-0.2となっていますが、馬番が1なら-0.2、大外18なら-3.6となります。補正タイムは「1=約1馬身」換算なので、枠の差だけで説明すると約3馬身差の計算になります。

ただし上記は()内の値の基準がバラバラですので、どの要素の影響が大きいのかはわかりません。各要素の影響度を比較できるよう標準化し、強弱をわかりやすく視覚化すると以下になります。

SnapCrab_NoName_2017-3-13_15-33-18_No-00

この中には「レース条件など出走馬全体に等しく影響のあるもの」「競走馬の能力や属性で差があるもの」の2通りがあります。競走馬間の評価差は後者から生まれます。東京芝1600mの今回の予測式では「近5走でのベストパフォーマンス」が一番大きな影響があることがわかります。これはあくまで解釈ですが能力を発揮しやすいコースだからでしょうか。また、どのコースにも言えることですが、近3走平均や前走のパフォーマンスなど、やはり競争能力が大きな影響を占めています。距離延長などはマイナス要因として働きます。イメージとしては前走1200mから来た馬などでしょうか。確かに厳しそうな感じがします。逆に距離短縮はプラス要因になっていますね。血統も影響度は小さいながらも種牡馬、母父ともに関係がありそうです。

ただ、最終的には各要素で積み上げた結果になりますので、臨戦過程が距離延長だったとしてもその他の要素で補っていれば指数上位となることは十分あります。上記の影響度を使って「血統的にはこの馬が有利」など切り出すこともできますが、評価はあくまで総合力です。

このような式をコースごとに算出し、予測できるようにしています。

SnapCrab_NoName_2017-3-13_15-55-40_No-00

4.予測指数を算出する
先ほどの予測式を使って、実際に東京芝1600mのレースを予測してみました。この記事を書いた直近の重賞では東京新聞杯がありましたので、出走馬のデータを当てはめてみたいと思います。こうなります。

SnapCrab_NoName_2017-3-15_0-30-41_No-00

記事なのでうまくいった事例を使っていますが、エアスピネル断然と言われたこのレース、勝ち馬ブラックスピネルを1位と予測していました。指数116は例年並みでしょうか(これがやりたかった)。ヴァンセンヌの年は113とレベルが落ちますね。指数は全レースで比較可能で1000万下を勝つレベルが100となります。G1であれば標準的に120を超えるパフォーマンスが要求されます。その横の偏差値は出走馬の比較用に算出しており、この後説明する期待値の算出に使っています。

レース結果はご存知の通りで、非常に精度高く予測できた例です。

SnapCrab_NoName_2017-3-13_17-2-54_No-00

5.指数の勝率から期待値を算出する
東京新聞杯の事例は良いとこどり感がありますが、そもそもこの予測式はどの程度精度の高いものなのかチェックする必要があります。この予測式は実際の結果をどの程度うまく説明できているのか、それを示す指標を決定係数(R2)といいます。0~1の値をとり、完全に説明できているものは1となります。この東京芝1600mの場合は決定係数0.8となっています。明確な基準はないのですが一般的にR2=0.8は「精度のよい」優秀な式といえます。予測と実際の補正タイムを可視化したものが以下になります。

SnapCrab_NoName_2017-3-13_22-49-58_No-00

概念上は斜め45度線上に乗ってればすべての馬のパフォーマンスが完璧に予測できていることになります。前後5pt程の幅はありますが、見当違いな予測ではないように見えます。特に100以上(1000万下クラス以上)の上位クラスになってくるとより安定していっているようにも見えます。このように、予測式を使って過去の出走情報をあてはめてシミュレーションをすることができます。そうすると気になってくるのは「どの程度当たっているのか」になります。馬券の細かい試算まではできないのですが、指数順位別の成績を出すことは可能です。

過去5年の予測結果をまとめたものがこちらです。

SnapCrab_NoName_2017-3-13_22-25-19_No-00

予測順位1位の勝率は約25%、平均単勝人気は2.6番人気になります。2.6番人気というのは存在しないので1番人気と3番人気の全体勝率から計算すると理論上15%となり、予測順位1位は人気以上の勝率となっていることがわかります。それぞれの順位で同じように比較をしています。

勝率が高いことはもちろん大事で、もし人気より下回っていたらこんなにこねくり回して全国平均以下という悲惨なことになるのですが、より重要なことは「どの程度の勝率か知っている」ということだと思います。自分の予測した結果の勝率がわかっているということは、オッズを見ることで「おいしい馬券か、そうじゃないか」の判断をつけることができます。予想時の会話にも出てくる期待値というものです。ここからはこの予測をどう使いこなすかというフェーズに入ってきます。

先ほどの分析では予測順位ごとの勝率を算出しました。しかし、順位はどんなに僅差でもついてしまいます。小数点一桁しか指数差のない1位と2位に10%近くも勝率差があるようには思えません。ダントツ1位と僅差の1位、もちろんダントツ1位の方が勝率が高そうですが、どのくらいダントツだとどの程度の勝率になるのか、もう少し詳しく知る必要がありそうです。また、予測順位1位の勝率が約25%、同等の単勝人気の勝率よりも高いということはわかりましたが、これは様々な馬が走った上での結果です。その数字の中身はどうなっているのでしょうか。極端な話、勝っているのは全部1番人気の馬で、3番人気以下の馬は全敗だったということもあり得るかもしれません。それなのに3番人気で指数1位の馬に「これは狙い目だ」と豪語すると恥ずかしい結果が待っていることになります。

まずは順位ではなく、他の馬とどの程度の差があるかを明らかにします。「ある馬の指数が平均からどの程度離れているか」つまり偏差値にします。これにより、英語と国語のテストの点数を比較するように違うレースでも同じ基準で評価をすることができ、勝率と組み合わせることで「偏差値65だと勝率は何%になるのか」がわかります。また、純粋な能力評価をしている中で本来はそうあって欲しくないのですが、同じ偏差値でも1番人気と10番人気では勝率が異なってくることが考えられます。これは「指数の癖」としてうまく付き合っていくことが必要そうです。

このようにして、過去5年分の平地競争全レースの「指数の偏差値」×「人気」で勝率を計算したものが以下になります。

SnapCrab_NoName_2017-3-15_0-15-59_No-00

自分の予測(指数)に全国のプレイヤーの知恵(人気)をお借りして算出した勝率表というイメージでしょうか。例えば偏差値70以上の3番人気は勝率20%を超えます。3番人気の平均勝率は約13%、平均オッズは6.5倍です。5回に1回勝つ馬券のオッズが6倍以上となるとなかなかオイシイです。自分の勝率が事前にある程度わかるというのはこういった予測ならではの面白さや強みかと思います。上記の表は下位の方で数字が少しブレていたりするので便宜上なだらかに補正して以下の表の勝率で期待値を計算しています。

SnapCrab_NoName_2017-3-15_0-56-22_No-00

再掲になりますが、東京新聞杯。指数の偏差値と人気から出した想定勝率にオッズを掛けたものが一番右にある期待値です。

SnapCrab_NoName_2017-3-15_0-30-41_No-00

ブラックスピネルは指数偏差値66の3番人気ということで勝率が19%、単勝オッズ6.4倍を掛けると期待値は1.2となります。つまり東京新聞杯のブラックスピネルは「5回走れば1回来て、その1回で4回の負けを取り返せる」馬と判定できます。その5回の1回が最初に来たということですね。ありがとうデムーロです。ストーミーシーとダガノブルグも期待値自体は高いのですが、これは掛け算するオッズが高すぎる異常値と考えた方がよいでしょう。このような馬だけを狙って100回以上買えば1回来て取り返せるのかもしれませんがそこまで我慢できませんので一定の指数ラインを引いて除外します。私は購入する指数ゾーンを偏差値50以上と決めています。馬券を無駄に広げたくないですし、せっかく指数で平均以下と判定した馬を買うのもなというのもあるので。

このような方法で単勝オッズの期待値はわかりました。ただ、購入する馬券は馬連、3連複、3連単などより高配当を狙っていきたいです。そこで、単勝オッズの期待値を元にそのほかの馬券の期待値シミュレーションを行います。単勝の還元率は80%、馬連の還元率は75%となっていますので、全体としては単勝期待値80%の馬を組み合わせた馬連期待値が75%となります。

馬連の期待値を導く計算式としては

80%×80%×□=75% □≒1.17

2頭の単勝期待値を掛け、さらに1.17を掛けると馬連の期待値になります。馬連80%と75%は全体の期待値なので、ここに対象馬の単勝期待値を入れていくと馬連の期待値を求めることができます。

例えば、東京新聞杯のブラックスピネル、プロディガルサンの馬連期待値は

1.2×1.0×1.17≒1.4

となり、それぞれの単勝以上に期待値の高い馬券となります。3連複も同様の考え方で計算できます。

もっと上手い方法はあるかもしれませんが、このようなアプローチで導き出した指数の癖を理解し、馬券購入に活かせるように試行錯誤をしています。

6.指数を自動的に算出する
私は普段Excelをデスクワークで扱う程度なので、ここからはスキル不足を披露してしまうことになるのですが、1日数レースは購入するわけですから、毎回毎回計算式に出走馬の情報を入力して指数や期待値を算出する、なんてことをやっていたらレースが終わってしまいます。

コースごとの予測式、種牡馬や騎手、過去走データなどは参照できるようにしておいて、TARGETから出馬表と過去走IDをコピペすれば

SnapCrab_NoName_2017-3-15_21-54-45_No-00

以下のように指数や順位、期待値の高い買い目を計算してくれるようにしました。
こちらの中京トリトンSは2-3-4の3連複が期待値1.3、見事的中し万馬券でした。

SnapCrab_NoName_2017-3-15_21-56-53_No-00

SnapCrab_NoName_2017-3-15_21-59-35_No-00

カッコよくプログラムされたものではないですが、このExcelの作成過程で今まで使ったことない便利な関数も発見できたので、まあ良しとします。開催当日に最新の過去成績、出馬表、オッズ一括ダウンロードしてコピペするだけで指数と買い目が計算できるようになりました。コンビニに競馬新聞を買いに行くよりは早く終わります。これを眺めて指数の意味合いを探りながら、期待値の高い買い目を中心に馬券を購入します。

これが2017年3月現在の私の競馬予測法です。出来上がったばかりなのでまだ性能評価するまでには至らないのですが、何十年とフワッと楽しんできた(それはそれで好きなのですが)自分の競馬予想の考え方を整理して、可能な限り測定可能なものにするために試行錯誤やアップデートを繰り返し、一応完成することができました。別に誰かに予想を売りつけたりするためにやったものではなく、自分オリジナルの競馬新聞を作っている感覚に近いです。競馬予想でも週の初めには出馬表を眺めながら、何となく頭の中で「これが本命かなあ」みたいなことを考えると思います。その「何となく頭の中で考えていること」を数式化したような感じです。冒頭に「人生の回収率」という書き方をしましたが、競馬に使える時間は限られています。この予測モデルで検討時間を効率化し、今までと同じように競馬を楽しみながらさらに別のことに有効に時間を使えることができれば、それも馬券を当ててるのと同じようなことと考えます。

今回は「重回帰分析」という統計手法を使っていますが、計算自体はExcelや統計ソフトに頼っている部分が大きいです。統計学も専門というわけではありません。もし記事を読んでいただいて「ちょっとやってみようかな」と思っていただける方がいれば嬉しいですし、私は完全なる文系人間、数学も得意ではありません。初歩的な統計学の本(統計検定だと3級の知識で十分です)、JRA-VANなどの公式データ、Excelや統計ソフトなどがあれば、何かしら独自の競馬予想プログラムを作ることはできると思います。ただ「競馬統計学」みたいな教科書もないので、自分なりにモデルを考え、ミスと修正を繰り返しながらそれっぽいものに近づけていく、それ自体が結構楽しいと思います。私ももっと予測精度を上げたり、運用を効率化したり、TwitterやBlogでこの予測を見て楽しんでもらえるような良い表現方法などを考えてもう少し遊びたいと思います。

以上です。いや、こんなクソ長い記事を最後まで読んでいただきありがとうございました。よろしければ本編の「ダークホースラジオ」もぜひ聴いてください。
今年はPOGをやりますので興味ある方はご一報を。