レーティング:着順だけによる馬の強さの積み上げ
レーティングは、レースの着順から各馬の強さを推定し、レースのたびに更新していく数値です。計算にはTrueSkillを使用します。時計は使用しないのでRIとは別の角度から強さを計測します。
強さとその確からしさの2つの数値
TrueSkillは、多人数で順位を競う対戦の結果から、参加者ひとりひとりの強さを推定する方式です。各馬の強さは、推定値 μ と、その推定のぶれの大きさ σ の2つで表現します。初出走の馬は μ が25かつ σ が大きい状態から開始します。
レースが終わると、着順に合わせて全馬の μ と σ を更新します。μ が大きく変動するのは予想に反した結果のときです。μ の低い馬が μ の高い馬に先着すると、前者の μ は大幅に上昇し、後者は大幅に低下します。反対に、μ の高い馬が順当に先着しても、μ はあまり変動しません。出走のたびに材料が増加するので σ は縮小していきます。
出馬表や特徴量に使用する「レース前のレーティング」は、そのレースの前の走のレース後の数値です。比較には μ−3σ を使用します。出走の回数が少なく σ が大きい馬は、μ が高くても低めの数値になります。
2000年からの積み上げ
レーティングは前回の数値に続けて計算するので、いつから計算し始めたかで数値が変わります。このアプリは2000年1月1日から計算を開始します。レースはレースコードの順に処理し、出走が1頭のレースは更新しません。
同じ期間を一度に計算しても、週ごとに分割して計算しても、同じ数値になります。全部の期間の計算は30秒ほどです。
特徴量としての基準との差
予測モデルには、レース前のレーティングそのものに加えて、レースの中の順位、出走馬の上位7割の平均との差、基準の数値(上位20%・50%・80%の境界)との差を渡します。
出馬表の「RA」の列に表示するほか、レーティング集計の画面では、クラス・トラック・距離・競馬場・頭数で絞り込んで、レースの中の順位ごとの勝率・回収率を確認できます。
短いセットアップでも同じ数値にするための同梱
2000年から積み上げる数値なので、データを短い期間しか取得していないPCでは、それより前から出走している馬が初出走の馬として計算し直されてしまいます。そこで、作者のPCで計算した、走ごとのレース後の状態(μ・σ など)をアプリに同梱しています。データフォルダに前回の走がない馬は、同梱の状態から継続して計算します。
2020年末までの状態を同梱して2021〜2022年の94,317走を計算すると、作者のPCの数値との差は最大1.2×10⁻¹³でした。同梱しない場合はレートで最大41.5の差が生じます。
次はPageRank:対戦のグラフから強さを計測します。