stockedge.jpの技術メモ

http://stockedge.jp/の中の人が書いてる技術メモ

競馬予測の論文紹介

f:id:stockedge:20160313150039j:plain
どうやら、私のブログを見て競馬の予測を始めたという人がちらほらいるようだ。そういう人たちの助けになるかもしれないので、私が読んだ競馬予測の論文(これまでの記事で紹介しなかったもの)をいくつか紹介する。


Comparing the effectiveness of one-and two-step conditional logit models for predicting outcomes in a speculative market
競馬予測では条件付きロジットモデルを使った予測が有効なのだそうだ。条件付きロジットモデルとは、多項ロジットモデルと似ているがちょっと違う*1モデル。この解説がわかりやすいかも。
この論文では、2ステップのモデル作成方法を提案している。まずファンダメンタル変数だけを素性として使って条件付きロジットモデルのパラメータを推定し、これをステップ1とする。次に、ステップ1のモデルを使って勝率を計算し、これとは別にオッズから逆算された勝率(market generated probability)も計算して、この2つの勝率を素性として再び条件付きロジットモデルのパラメータを推定する(これをステップ2とする)。つまり、ステップ1で作った条件付きロジットモデルの出力をステップ2の条件付きロジットモデルの入力とするということ。要は、条件付きロジットモデルを使ってstacked generalizationをやってみましたという論文。なぜモデルの構築を2ステップに分けるのかというと、最初から「オッズから逆算された確率」を素性に加えてしまうとファンダメンタル変数との相関が高いためmulticollinearityにより学習結果の解釈が難しくなるため。もう一つのメリットとして、2ステップにすればステップ1の計算はあらかじめ計算しておけるので、レース開始直前でも高速に計算ができる、というメリットもある。


Adapting support vector machine methods for horserace odds prediction
SVMと条件付きロジットの2ステップモデルで競馬の着順を予測している論文。
先ほどの論文ではステップ1もステップ2も両方とも条件付きロジットモデルを使っていたが、この論文ではステップ1でSVMを使っている。非線形性がモデル化出来るのでSVMの方がいいらしい。


Adapting least-square support vector regression models to forecast the outcome of horseraces
これもSVRと条件付きロジットの2ステップモデルで競馬の着順を予測している論文。ハイパーパラメータを決める際に、モデルの評価指標として、検索エンジンの評価に使われているnormalized Discounted Cumulative Gain(NDCG)を使うという点が独創的。
一般的に、検索エンジンでは、検索結果上位が正しく表示される方が検索結果下位が正しく表示されるよりも重要である。このことを考慮して検索結果上位に対して重みを付けて結果を評価する指標がNDCGである。
競馬の着順予測も着順上位を正しく予測する方が重要なので、ハイパーパラメータを決める際の評価指標にNDCGを使ってみました、という論文がこれ。


A hierarchical bayesian analysis of horse racing
階層線形モデルで馬のスピードを予測している論文。競馬では、レース条件の微妙な違いによって「あるファンダメンタル変数がスピードにどう影響するか」という関係性自体が変化するはずだが、通常の線形回帰ではその関係性の変化を無視してしまう。
ではどうするかというと、レースによる回帰係数の違い(変量効果)を表す項を線形回帰に含めて、その項のパラメータの事前分布は全レースで共通しているものとして、推定を行う。こうすれば、少ないデータ(同一のレースで走る馬は高々十数頭しかいない)からでもレースによる回帰係数の違いを推定することができる。
ちなみにこの論文はここで無料で読める。


PREDICTING HORSE RACE WINNERS THROUGH A REGULARIZED CONDITIONAL LOGISTIC REGRESSION WITH FRAILTY
これも条件付きロジットモデルで勝ち馬を予測する論文。面白いのはfrailtyというオフセット項*2を使っているところ。このオフセット項は 1 - (1 / オッズ) で定義されるもので、これを条件付きロジットモデルのオフセット項として使うことにより「オッズが高いのに勝ちそうな馬」を予測することが出来るのだそうだ。
この論文もここで無料で読める。

おわりに

この程度の情報はGoogle Scholarで「"horse racing" prediction」とか検索すればすぐ出てくるので、競馬予測している人はGoogle Scholarを活用すると捗りますよ。
あと、約2ヶ月ぶりの更新なので、ついでに私自身の競馬予測が現状どの程度完成しているかというのも少し報告しておくと、前回の記事ブコメで頂いた「学習と予測を一対しかやってない」「実戦ではオッズは確定してない」などの批判にも十分答えられるものが既に出来上がってます。というわけで、近いうちに予測を公開しよう、と思っているんだけどなかなか時間がとれないのだよね…。

*1:変数に付いている添字が違う

*2:オフセット項の意味がわからない人は「データ解析のための統計モデリング入門」の6.6.1を読むとよい