競馬のロジスティック回帰分析

  • このエントリーをはてなブックマークに追加

最近社内の一部で、競馬のデータ分析が流行っています。
先週の社内勉強会で話した内容をまとめます。
 

競馬と統計的に考える意義

競馬の予想におけるIT活用度合いは、大きく分けると3段階あります。
1. 競馬新聞を眺めて予想
2. 過去データを集計して予想
3. 統計モデルを適用して予想

今回は3. によるアプローチなわけですが、3. で考える意義としては、
ある馬が勝ちに分類されのか、勝つ確率は何%あるのか等、
ベットするにあたっての判断の尺度を得ることができることです。
判断の尺度が得られると何が良いのかというと、分析の結果得られた判断の尺度をもとに、
賭けるルールを構築できることです。
この賭けるルールが明確になれば、PCを使ってシミュレーションを行うことができ、
賭けを行う前に、その手法が有効かを確かめることができます。

今回は過去データからモデルを作り、確率を計算し、一定のルールに従って賭け
をした場合にどの程度のリターンが得られるのかを計算します。
 

馬券戦略

競馬において確率を計算する場合、
どのような買い方にするか(単勝・複勝・馬連・馬単・ワイド…)によって、計算すべき確率が変わってきます。
したがって、分析に先立って買い方を決める必要があります。

今回は馬単*1をボックス*2で12点買う場合の確率を計算します。

2着以内に入る確率の高い馬を4頭選び、全ての組み合わせを購入します。
1レース1200円(4 × 3 = 12通り)という買い方になります。

分析に関しては、比較的簡単なモデルであるロジスティック回帰で分析を行います。
 

ロジスティック回帰分析とは

ロジスティック回帰分析とは1つのカテゴリカルデータを説明変数として、その説明変数を
その他の変数で説明する形のモデルを使って分析する手法で、
2値のみ取りうる値の発生確率を予測することができます。
いくつかの競馬関連の論文*3でも、ロジスティック回帰を用いた分析がなされています。
 

モデルと変数

今回のモデルと説明変数・被説明変数は下記の通り。

logit(p_i) = \alpha + \beta_0{UmaNyusyoRatio_i} + \beta_1{KisyuNyusyoRatio_i}
i = 1,...,n,

p_i : ある馬が2着以内の確率

UmaNyusyoRatio : 馬の過去2年間の出走レースのうち3着以内の比率
ある馬の過去2年間の出走レースのうち3着以内のレース数 / ある馬の過去2年間の出走レース総数

KisyuNyusyoRatio : 騎手の過去2年間の出走レースのうち3着以内の比率
ある騎手の過去2年間の出走レースのうち3着以内のレース数 / ある騎手の過去2年間の出走レース総数

被説明変数に関しては、上述の通り馬単をボックスで買うので、2着以内の確率を予測します。

説明変数に関しては、実力のある{馬, 騎手}が勝つ、という前提のもと、
実力のある{馬, 騎手}は過去に実績を出しているとし、
過去の出走レース時点での過去の入賞率を説明変数としました。

Rで分析を行う際には

glm(isIn2nd ~ UmaNyusyoRatio + KisyuNyusyoRatio, family = binomial)

で簡単に係数の推定を行うことができます。
isIn2nd : 2着以内かどうかの2値変数
 

回帰分析結果

中山競馬場の2012年1月1日 ~ 2014年11月30日に行われた距離・馬場種別(芝 or ダート)ごとにモデルを作りました。
回帰結果は下記の通りです。

馬場種別 距離(m) Coefficients Estimate Sth. Error z value Pr(>|z|)

1200

(Intercept)

-3.2049

0.2956

-10.842

<2e-16

***
UmaNyusyoRatio

2.3246

0.3894

5.970

2.37E-09

***
KisyuNyusyoRatio

2.5443

1.0634

2.393

0.0167

*

1600

(Intercept)

-3.2122

0.2282

-14.079

<2e-16

***
UmaNyusyoRatio

1.0175

0.2359

4.313

1.61E-05

***
KisyuNyusyoRatio

4.3761

0.8230

5.317

1.05E-07

***

1800

(Intercept)

-2.3396

0.2678

-8.738

<2e-16

***
UmaNyusyoRatio

1.0090

0.2868

3.518

0.000435

***
KisyuNyusyoRatio

1.7209

0.9895

1.739

0.082007

.

2000

(Intercept)

-3.5513

0.2430

-14.612

<2e-16

***
UmaNyusyoRatio

1.4076

0.2293

6.138

8.38E-10

***
KisyuNyusyoRatio

4.4332

0.8811

5.031

4.87E-07

***

2200

(Intercept)

-2.7367

0.3750

-7.298

2.92E-13

***
UmaNyusyoRatio

1.9329

0.4015

4.815

1.47E-06

***
KisyuNyusyoRatio

1.6534

1.4464

1.143

0.253

2500

(Intercept)

-3.1266

0.6074

-5.147

2.65E-07

***
UmaNyusyoRatio

2.7094

0.8944

3.029

0.00245

**
KisyuNyusyoRatio

1.7080

2.2039

0.775

0.43835

ダート

1200

(Intercept)

-3.3837

0.1394

-24.276

<2e-16

***
UmaNyusyoRatio

1.4241

0.1665

8.552

<2e-16

***
KisyuNyusyoRatio

5.1467

0.5113

10.066

<2e-16

***

1800

(Intercept)

-3.3797

0.1421

-23.785

<2e-16

***
UmaNyusyoRatio

1.5665

0.1590

9.851

<2e-16

***
KisyuNyusyoRatio

4.7882

0.5212

9.187

<2e-16

***

2400

(Intercept)

-2.3437

0.4655

-5.035

4.78E-07

***
UmaNyusyoRatio

1.4713

0.8553

1.720

0.0854

.
KisyuNyusyoRatio

1.4670

1.7373

0.844

0.3984

芝・ダートとも、2000mを超えると騎手の実績であるKisyuNyusyoRatioの係数が有意ではなくなりました。
距離が長くなると、別の要因が関係しているのではないかと考えられますが、
この調査は追ってやっていきたいと思います。
 

シミュレーション結果

シミュレーション期間 : 2014年12月1日 ~ 2014年12月30日

レース数 的中数 的中率 総投資額 回収額 回収率

74

21

28.4%

88,800円

113,910円

128.3%

的中レース

2014126 1R 2,500
2014126 3R 3,770
2014126 9R 1,780
2014126 10R 16,420
2014127 4R 1,590
2014127 12R 7,510
20141213 4R 1,440
20141213 7R 2,700
20141213 8R 1,330
20141213 10R 7,760
20141214 12R 3,180
20141220 1R 1,080
20141220 12R 1,800
20141221 3R 11,630
20141221 4R 5,600
20141227 2R 2,670
20141227 8R 6,280
20141227 9R 6,470
20141228 1R 2,890
20141228 5R 4,320
20141228 10R 21,190

なんと、回収率100%を超えました!
でも中山競馬場でしか評価をしていないし、
評価期間も1ヶ月と短いので、他の競馬場での賭けでも通用するかはなんとも言えませんので、ご利用は自己責任で。
他の競馬場・長い評価期間での分析も追ってやっていきたいと思います。


*1 : 1着と2着の馬を順番どおりに当てる
*2 : 選んだ馬の組み合わせを全通り買う買い方
*3 : Ruth N. Bolton・Randall G. Chapman (1986). Searching for Positive Returns at the Track, MANAGEMENT SCIENCE, Vol. 32 など
  • このエントリーをはてなブックマークに追加