競馬メモ

パンダズ競馬の説明書

パンダズ競馬をご訪問いただき、ありがとうございます!

競馬をテーマにしたサイトを個人で運営しております。

こちらのページでは、パンダズ競馬の考え方コンテンツの見方などをご紹介してまいります。


【PR】無料登録で使えるオススメ予想サイト

私は初心者の頃に、10社ほど無料予想を出している予想サイトに登録して、買い目の組み方を研究していました。

(データ競馬では、予想だけでなく買い方もルール化しないと結果が安定しません)

その中でダントツに結果を出していたのがターフビジョンさんでした。

ターフビジョンでは毎週土日2レース分の3連複予想が無料で閲覧出来ます。

無料とはいえ、人気サイドに偏った3連複などでは決してなく、他社と比べても、結構本気で予想を出している印象があります。

例えば、下記のレースを見てください。

15点購入とはいえ、7人気の⑧ハギノベルエキプと11人気の④ベルファーリングを逃さず、見事的中させました(198.0倍的中)。

■ 2019/6/2(日)阪神7R 3歳未勝利

こんな本気の予想を無料で出すのか、と思いましたが、宣伝の意味もあるからかえって下手は打てないのでしょう。

2レースのみの提供に限定しているというだけで、的中精度は有料のものと変わらないと感じました。

メールアドレスの登録だけでは、費用は一切かかりませんのでご安心ください。

メルアド登録後、送られてくるメールのURLをクリックし、【週末作戦研究室】という無料コンテンツをチェックしてみてください。

パンダズ競馬とは

データ分析を駆使して収支プラスをめざす

はじめまして。しがらきと申します。京都在住の30代のサラリーマンです

競馬は学生の頃に少しやってましたが、社会人になってからは全く触れないで過ごしてきました。

結構派手にやらかした経験もあり(競馬以外でも…)、ギャンブルといわれるものには極力近づかないようにしていました。

ところが、30代になってから家族(妻・娘2人)と別居することになり、時間を持て余したろころ、友人に競馬に誘われ、徐々にのめり込むようになります。

自分なりに予想をして、それが当たるか当たらないかというプロセスは楽しくはあったのですが、年間を通してみると結構な金額をつぎ込んでいることに愕然としました。

そうした中、収支安定化に向けて、自分なりに方法を模索する中出会ったのが、この本でした。

卍氏のことは馬券裁判として盛んにニュースにも取り上げられてましたから、当時競馬から遠ざかっていた私も存じておりました。

この本の中で印象的だったのが、次の一節です。

しかしながら、競馬では、必ずしも一番強い馬が1着になるとは限りません。同じ条件、同じメンバーでレースをした場合、おそらく1着馬はコロコロ変わるだろうと思います。

回収率を高めるためには、的中しそうな買い目を探すことではなく、適正オッズよりも高いオッズがついている買い目を探すこと、つまり、過小評価されている買い目を探し出すことです。

そりゃそうだ、と思うとともに、直観的にこの方法だと自分には合っているな、と感じました。

競馬を楽しむ方法として、勝ち馬を当てる技術を磨くことは当然面白そうではあるのですが、データを駆使して、投資競馬のようなものを突き詰めるのは、もっと面白そうだと感じたわけです。

幸いプログラミングは本業ではない趣味レベルですが、多少扱うことができます。

そんなわけで、最近の週末は、オリジナル指数に基づいて馬券を買う、というデータ競馬を楽しんでいる次第です。

実績はというと・・・

さて、ご興味があるのは、

  • これが結局、収支向上に結びついているのか・・・、

というところだと思いますが、残念ながら今のところ収支はトントンで100%を超えていません。

2018年の1月からこの方法での馬券購入を開始し、

  • 2018年6月まではかなり順調に進んでいて回収率は120%を超えていたのですが、
  • 7月8月の合計がまさかの50%台となり、

いったんここで止めました(トントンというのは止めたからです)

投資競馬の性質からいって、ひょっとしたらこの50%というのは許容した上で継続しなければならなかったのかもしれませんが、2ヶ月続きましたので、さすがに疲弊してしまいました。

最初のモデルでは、騎手・馬主・調教師といった人に関するファクターを全く取り入れておらず、ここに改善の余地がありそうだ、ということで今現在も試行錯誤しています。

この辺りの情報を扱いだすと、自分のPC内でやっているだけでは、PCの中もアタマの中もごちゃごちゃして収拾がつかなくなるのですよね。

これがサイト運営をし始めたきっかけです。

パンダズ競馬の開設へ

つまり、サイト運営を通じて、さまざまな競馬データを体系的に整理でき、モデルを精緻化していくうえでメリットになると感じ、競馬サイトを作ろうと思ったのです。

また、騎手や調教師のデータベースは検索される需要も一定数ありそうなので、そこからいろんな競馬ファンの方とつながれたら嬉しいな、という思いもありました。

そんなことで、このサイトでは、

  • オリジナル指数の作成プロセス
  • 参照するデータベース

などを紹介していきたい、と考えております。

いつか、このオリジナル指数を出走表と一緒に公開できれば、と思っているのですが、まだ満足できるレベルには達していないので、気長にお待ちいただければと思います。

パンダズ競馬の由来

データがメインコンテンツでありこのサイトの特長でもありますが、主にPython(パイソン)というプログラミング言語を利用しています。

そのPythonの中で、非常に便利なPandas(パンダズ)というデータ分析用ライブラリがあり、このサイトを作る上でも、オリジナルの馬券購入ルールを運用していく上でも欠かせない存在となっています。

パイソン競馬でも良かったのですが、なんとなくPandasに愛着があって語呂も良いので、サイトコンセプトを素直に伝えられる名称としてパンダズ競馬としました。

なんか、ダサいですよね。ちょっとダサいな、と思い始めているのですが、いまさらなのでこのまま突き進みます(笑)

国内ではpandasはパンダスと読む方も多いですが、英語圏ではパンダズが正しいようです。

パンダの複数形でしたらやはりパンダズでしょうかね

Pandas - ウィキペディア

データ処理の方法

PythonだけでなくRとGoogle Apps Scriptも使用します。

データベースはSQliteとMySQLを利用。

私は職業プログラマーではなく、土日しかコードを書きません。

よって、プログラミングミスを避けるため、二系統のルートを用意し、相互に参照して結果が正しいか検証するようにしています。

PythonやRは趣味プログラマーでも使えます!

ターゲットや馬王を使わない?

データ競馬をやられている方は、ターゲットや馬王などを利用しているかと思います。

そちらを利用することも考えましたが、次のようなメリットを感じましたので、自前のデータベースを運用しています。

  1. ターゲットや馬王はこれらを使っているというだけで、他の馬券購入者と類似した行動に近づきますので、過小評価馬を見つける、という目的から遠ざかると考えています。自前ならそこを気にせずに済みます(もちろん代表的なファクターは重なってくるでしょうけれども)。
  2. 自前の方がアウトプットスピードが速いです。ソフト自体を立ち上げる必要がないですし(馬王は結構重い)、回収率の計算もPandasやRはものすごく速いです(三連複までいくとさすがに時間がかかりますが)。PCが新しいと馬王でも気にならないかも・・・。
  3. ソフトに依存しないので、データがある限りどんなアウトプットの仕方にも対応できます。

3つめの事例で言うとこの記事内のデータなんかもすぐに出せます。あんまり人気のない記事ですが・・・。

【競馬の格言】「二頭出しは人気薄を狙え」人気薄は狙ってはいけない!

ひょっとしたら、私が単にターゲットや馬王を使いこなせていないだけで、何かいろいろ柔軟にできちゃったりするかもです

パンダズ競馬の基本的な考え方

的中率志向ではなく回収率志向であること

冒頭の繰り返しになりますが、大事なところですので、もう一度。

このサイトが志向するのは的中率ではなく回収率になります。

回収率志向では、過小評価された出走馬を自動抽出して購入を続け、負けることは前提としながら、トータルでの回収率100%超えを狙います

勝ち馬を当てることに興味がないわけではないですが、優先順位は低くなりますね。

ですから、好走率にあまり言及しないところなどが他サイトと異なり、ひょっとしたら、それが原因で読みにくさや違和感を感じられるかもしれませんが、ご了承いただきたく・・・。

回収率志向の世界も、昨今、AIとか機械学習とかを耳にする機会が増えてきましたので、私のつたないモデルでどこまで勝負できるか未知数ですが、

  • 誰かが作ったモデルに乗っかるのではなく、
  • 自前で作ったモデルで実践する、

というところに、意味があるのではないかと考えてます。

モデルの利用者が増えれば増えるほど過小評価じゃなくなるので。

評価するファクターと評価しないファクター

回収率に種類に関しては後ほど詳しく書きますね

ここでいう回収率は、このサイトで一般的に利用しているものになります。オッズ単回・オッズ複回と名付けています。

オッズ単回やオッズ複回は、レースの全部の買い目を購入すると控除率を除いた80%に収束します。

したがって、回収率が80%を上回るとき、

  • 過小評価である
  • あまり買われていない
  • オッズ妙味がある
  • 馬券妙味がある

という言い方をし、適正オッズよりもオッズが高いことを表します。

これがオリジナル指数を構成するファクターの候補となります。

一方、回収率が80%を下回るとき、

  • 過大評価である
  • 買われ過ぎである
  • オッズ妙味がない
  • 馬券妙味がない

などの言い方をし、適正オッズよりもオッズが低いことを表します。

同じくオリジナル指数を構成するファクターの候補となりますが、こちらはマイナスのファクターとなります。

基本的にはこれらのファクターを丁寧に紡いでいって、紡いだ結果としてできたモデルに基づいて馬券を購入します。

ところで、いま回収率だけに注目していますが、勝率(的中率)はどのように扱うと良いでしょうか?

全く無視するのが良いのでしょうか?

組み合わせて整理すると、このような形になるでしょう。

回収率が高い 的中率が高い ①高回収率・高的中率
的中率が普通 ②高回収率
的中率が低い ③高回収率
回収率が普通 的中率が高い ④高的中率
的中率が普通 採用しない
的中率が低い ⑤低的中率
回収率が低い 的中率が高い ⑥低回収率
的中率が普通 ⑦低回収率
的中率が低い ⑧低回収率・低的中率

まず文句なしに採用するのは①と⑧です。⑧は買い目から除外する意図なので逆の意味でのファクターとなります。

②~⑦はどう扱うべきでしょうか。

的中率をある程度考慮しなければ資金的にしんどい

回収率志向だと②③⑥⑦が採用になりますね。

とにかく的中は関係なしに、回収率の高い低いだけに注目します。

しかしです!

この線で突き詰めると、ほとんど当たらないのです。

的中率と回収率がある程度トレードオフみたいになっていて、あまりにも的中率を無視すると回収率は上がっても、全然的中しないという精神的に良くないモデルが出来てしまいます。

そこで、

  • 回収率に影響がないけれども的中の良し悪しに影響があるファクターである④⑤を採用し、

かつ、

  • 回収率には好影響だが的中率には悪影響の③⑥を外す、

というやり方をします。

この方法で、的中率と回収率のバランスのとれたモデルができましょう。

まとめると次のようになります。

  • 回収率志向・・・①②③⑥⑦⑧
  • バランス型・・・①②④⑤⑦⑧

学習データとテストデータ

モデルを作る際に使用するデータには2種類あって、1つが学習データ、もうひとつが、テストデータになります。

2013年~2017年のデータを利用してモデルを作ったとします。

このときの回収率のシミュレーションを何でやりますか?と言う話です。

正解は2018年のデータを使うことです。

このとき、

  • 2013年~2017年のデータを学習データ
  • 2018年のデータをテストデータ

と呼びます。

このように2つのデータをきちんと分けることで、モデルの正しさを評価することが出来ます。

上手くいかなければ、モデルを見直して、もう一度テストデータにかける、ということを何度も繰り返すことになりますので、例えば、2019年に、2018年までのデータを使っていきなりぶっつけ本番でやる、ということは考えられないです。

ここはデータ競馬で一番大事なところかもしれません

過剰適合(オーバーフィッテイング)を避ける

先ほどの学習データとテストデータの話とも関連しますが、過剰適合というのは、統計学において、既知データに対しては当てはまりが良いが、未知データに対しては適合できていない状態のことを言います。

例えば、せっかく何十万件とあるデータを切り刻んでいき、数百件しかないところで回収率が200%になった!といっても、次のタイミングでは50%にしかならないかもしれません。

これは過剰適合の状態です。

で、過剰適合に注意せよ、と言っておきながら、このサイト内での私の説明では、出走件数が少なくても回収率がいいですねーとか言ってしまっているところもあります(特にコースデータ)。

まあ、ちょっと基準が難しいところです。

モデルを作る際には、ある程度出走件数が多いファクターのみを扱うように注意しています。

データから仮説、ではなく、仮説からデータ

ここも注意している点ですが、

  • あくまでも何らかの過小評価・過大評価になる要素があって、
  • データで実際にそうであるかを確認して、
  • 確かにそうなっている、

というのが物事の正しい解釈の順序です。

何か回収率が高い要素をたまたま見つけ、なんだろうと考えて無理やり仮説や因果関係を想定するのは良くないです。

ここはやりがちなところなので、自分への戒めのために書いておきます。

回収率100%を超えるモデルをつくる

以上のようなことに注意しながら、ファクターを丁寧を紡いでいくと、使えるモデルができます。

おそらく、注意に注意を重ねるほど、100%を超えるのがギリギリくらいのものになります(100%を超えなければやり直し)

経験上、100%を大きく超えるモデルは、もちろん、優秀なモデルである可能性もありますが、過剰適合のリスクが大きいと思います。

回収率と的中率のトレードオフなどは良く話に出ますが、データ競馬で最もケアしなければならないのは、回収率と過剰適合の関係性だと思っています。

パンダズ競馬の見方

分析記事とデータベースがあります

分析記事は、

  • 近走成績
  • 馬体重・斤量
  • オッズ・人気
  • スピード指数・・・

などでカテゴライズしていて、オリジナル指数を作る過程や、その他とりとめのない内容もありますが、自分の備忘録的な意味もあって書き連ねています。

特定の1つのレースを当てることを志向していないので、正直あまりお役にたてないかもしれません・・・。

データベースは、

  • 騎手
  • 調教師(厩舎)
  • 馬主
  • 血統(種牡馬)
  • 全競馬場コース
  • 過小評価ファクター

の6カテゴリーがあり、毎週更新しています

それぞれ同じ切り口でまとめていますので、俯瞰しやすいと思います。

こちらは、条件別に成績や回収率を網羅的にまとめたデータベースですから、少しはお役に立てるのではないかと考えています。

データテーブルの切り替え

データ主体のサイトですので各ページが数値だらけです。

どのデータベースも、基本構成は着別度数・勝率・連対率・複勝率・単勝回収率・複勝回収率となっています。

ここの回収率はオッズ単回・オッズ複回と呼んでいるものになります

スマホの場合は、こんなに横長だと非常に見にくいので、デフォルトでは着別度数を非表示にしています(PCは表示)。

PCでもスマホでも、各テーブルの左上にある着別度数を[表示]、または、着別度数を[非表示]というボタンを押してもらえれば、テーブルの切り替えができるようにしています。

見やすい方を使ってください。

着別度数が表示の状態。非表示ボタンを押すと着別度数が隠れます

着別度数が非表示の状態。表示ボタンを押すと着別度数が現れます


変なところに凝ってしまいました。ぜひ、押してみてください・・・


着別度数を[非表示]

1着2着3着着外出走勝率連対複勝単回複回year5_popularity
1人気2131097525264932.849.661.27982year5_popularity
2人気1071136931560417.736.447.87478year5_popularity
3人気86777127751116.831.945.89887year5_popularity
4人気42455326840810.321.334.38477year5_popularity
5人気1833412423345.415.327.56180year5_popularity
6人気1015222152623.89.517.95763year5_popularity
7人気716121732083.411.116.86373year5_popularity
8人気8461241425.68.512.713771year5_popularity
9人気256941071.96.512.16782year5_popularity
10以下34121892081.43.49.18292year5_popularity

脚質について

脚質は、サイトによって使われ方がまちまちです。定義を正確にしないと、どういう意味で使っているのか分かりません。

脚質というと「その競走馬のタイプ」のような感じを受けます。実際その通りなのですが、もともとは「決め手」のことであり、同じ競走馬でも1走1走で異なるものです。

その「決め手」の割合に応じて、とある競走馬のタイプを決めましょうというのが脚質の基本的な考え方になります。

まずは、JRA-VAN NEXTの説明が分かりやすいので、引用させてもらいましょう。

http://next5.jra-van.jp/appli/kyakushitsu3.html

「逃げ」は分かりやすいでしょう。それ以外の「先行」「差し」「追込」は、ざっくり言うと、最終コーナーで3分割している、ということですね。

ところが、このJRA-VAN NEXTの表現方法では、次の点が問題です。

  • 逃げ・先行・差し・追込の4分類だと、例えば、最初から最後まで最後尾で追走していた馬も追込に分類されてしまう。

そこで、次に参考になるターゲットの説明を見ていましょう。

http://faqnavi13a.csview.jp/faq2/userqa.do?user=jravan&faq=faq01_target&id=389&parent=19

ターゲットでは、中団・後方というのがあり、決め手のマクリも増えて、全部で7項目になります。

追込の派生が後方、差しの派生が中団で、差し馬・追い込み馬を4着内と定義し、それ以外を中団・後方と分類していますので、実際の脚質をより良く反映するものだと考えます。

まとめてみましょう。

出走馬を4コーナーで3つのグループに分け、先頭から第1集団、第2集団、第3集団としています。

逃げ 2~4コーナーのいずれかが1位通過
先行 4コーナーが第1集団
差し 4コーナーが第2集団かつ4着内
 -中団 4コーナーが第2集団
追込 4コーナーが第3集団かつ4着内
 -後方 4コーナーが第3集団
マクリ 2~3コーナーで第3集団、4コーナーで第1集団

中団・後方があることで、差し・追込の意味が生きてきますので、このサイトでもターゲットの基準に合わせています

最後に、実際にこのサイト内での脚質の扱い方についてです。

今まで見てきたように脚質というのは「決め手」ですから、ある競走馬の1走1走にデータが与えられます。次のようなイメージですね。

  • 1走前・・・先行
  • 2走前・・・差し
  • 3走前・・・逃げ
  • 4走前・・・差し
  • 5走前・・・差し

パンダズ競馬では、過去競走の中で最も多かった脚質を最頻脚質と呼んでいます。データ中で単に「脚質」と呼んでいる場合は、この最頻脚質になります。上記リストだと「差し」となります。

コースデータであれば、この最頻脚質データを見ていただければ、どの脚質で有利不利があるのか、という判断ができるようになっています。

※最頻脚質が同率の場合は、近走の出現が多い方を優先します。
※データベース内では、脚質としてはあまりなじみのない中団・後方は記載しておりません。また、マクリは件数が少ないので、先行にまとめています。

回収率のシミュレーションについて

回収率は掛け金の設定の仕方で、かなり変化します。

サイトによってバラツキがあるのは、この設定によります。

つまり、買い方に依存するわけです。

このサイトのデータ分析では、平均回収率が80%になるように条件づけて計算をしています。

これがオッズ単回と呼んでいるものになります。

オッズ単回とベタ単回という2つの考え方がありますので、まずはこれを見ていきます。

ベタ単回

3頭立てレースで、1人気、2人気、3人気の投票数(1票100円とします)がそれぞれ300、200、100だったとします。

総投票が600になりますから売上が60,000円、控除率(20%)を考慮した返還金合計が48,000円となり、

単勝オッズは、

  • 1人気 48,000円/300票×100円=1.6倍
  • 2人気 48,000円/200票×100円=2.4倍
  • 3人気 48,000円/100票×100円=4.8倍

となりますね。

ベタ買いをするということは1票ずつ購入するのと同じなので、それぞれの馬が勝利した時の回収率は、

  • 1人気 1.6倍×100円/300円=53.3%
  • 2人気 2.4倍×100円/300円=80.0%
  • 3人気 4.8倍×100円/300円=160.0%

となります。

簡単な例ですが、ベタ買いだと人気サイドは回収率が悪く、穴馬がくれば回収率が高くなることが分かります。

これがベタ単回の性質です。

オッズ単回

同じように考えていきます。

3頭立てレースで、1人気、2人気、3人気の投票数(1票100円とします)がそれぞれ300、200、100だったとします。

総投票が600になりますから売上が60,000円、控除率(20%)を考慮した返還金合計が48,000円となり、

単勝オッズは、

  • 1人気 48,000円/300票×100円=1.6倍
  • 2人気 48,000円/200票×100円=2.4倍
  • 3人気 48,000円/100票×100円=4.8倍

となります。ここまで同じです。

オッズに反比例させた買い方とは、1人気:2人気:3人気を1/1.6:1/2.4:1/4.8で買うことを意味しますが、

これは計算すると3:2:1となり、結局もとの全体の投票数の比率に戻っているだけです。

買い目を検討するときには投票数ではなくてオッズが見えている状況なので、

  • オッズに反比例させる

というまどろっこしい言い方をしますが、

  • 全体の投票数に比例させた投票を行う

とイコールです。

そうすると、投票総数は1人気:2人気:3人気=3票:2票:1票ですね。総数が6票(600円)となります。

回収率は、

  • 1人気 1.6倍×300円/600円=80.0%
  • 2人気 2.4倍×200円/600円=80.0%
  • 3人気 4.8倍×100円/600円=80.0%

といずれも控除率を除した値(80%)になります。これがオッズ単回の性質です。

ベタ単回とオッズ単回のどちらが好ましい指標か

人気サイドから穴馬まで幅広く購入する場合は、オッズ単回の買い方でなければ損をしますよ。

一例を出してみます。

これは2013年から2017年までの中央競馬芝コースのすべての出走馬を購入した場合の結果をまとめたものです
クラス 出走数 勝率 オッズ単回 ベタ単回
重賞・OP 13,218 7.0% 79% 71%
3勝クラス 6,937 7.5% 79% 75%
2勝クラス 15,234 7.7% 79% 72%
1勝クラス 32,752 7.0% 79% 77%
未勝利 38,020 6.5% 79% 69%
新馬 13,191 7.5% 80% 70%

勝率は平均的な出走頭数に依存するので、6.5%~7.5%まで幅があります。

見ていただいたらわかる通り、オッズ単回は基本的に80%に収束します。

一方のベタ単回は、すべてのクラスで回収率が下がっています。

さきほどの例でみたように、返還金合計を投票数に応じて分けることになるので、人気サイドで1票しか入れない場合は、分け前の割合が減ってしまいますね。

ただし、オッズに反比例させる買い方、と言葉では簡単に言えても、実際にはなかなか困難であったりします。

投資競馬をやる場合は買い目をどんどん入れていかないといけないので、いちいち計算してられません

私は人気サイドはそもそも避けるので、いまのところベタ買いで良いかなと考えていますが、この辺りはまだ結論が出ておらず、実戦を踏まえて修正をしていければと思います。

オッズ単回は過小評価・過大評価の判断の指標

で、そもそもの話に戻りますが、単勝回収率に目をやるのは、過大評価・過小評価を判断したいためでした。

  • オッズが高い割には好走する
  • 思ったより好走する人気薄馬を見つける

とか、そういう要素を探したいわけですが、基準がないと判断がつきません。

オッズ単回は、もしすべての出走馬を購入していたら80%に収束するので、80%を基準として、過大評価・過小評価を判断することが出来ます。

オッズ単回を使用する最大のベネフィットはこれでしょう。

このサイトでは基本的にオッズに反比例させた金額を購入するように設定していますので、特に指定のない限りオッズ単回を示しています

ベタ単回を使用するときは、それを必ず明示するようにしています(穴馬の持ってきやすさの評価などで使えます)

また、実際の馬券は100円単位でしか購入できませんので、シミュレーションでは10,000円を基準にしてオッズに反比例させて購入金額を決めます。

したがって、オッズが100倍以上になると、一律100円を購入することになります。

参考資料

卍氏の著作は現在3冊あり、いずれも参考になります。残り2冊はこちらになります。

競馬全般の勉強には競馬の教科書がおすすめです。

教科書というだけあって網羅的で、これ1冊で競馬の全体感が分かるようになっています。ただし、初版が少し古いのでコースの傾向などは変わっています。

同じシリーズでこちらも勉強になります。

こちらも過小評価に焦点を当てた競馬本です。最近の本ですので、どれか1冊買うなら一番おすすめです。

参考サイト

競馬検証.com

-競馬メモ