競艇場固有のレースを統計的に分類しようとしてみた

2019年12月25日競艇, 統計

こんな人にオススメ!

・統計的な検定に興味がある方
・競艇場別の固有レースを知りたい方

固有のレースとは?

尼崎のモーニングレース

固有のレースとは、上画像のように、各競艇場で組まれているオリジナルな名前を持ったレースを指します。

各枠番に固定したグレードの選手を配置して、配当や予想の難しさの面で番組を盛り上げようとする試みです。

ただ、このように偏ったレースとなると、競艇場別の平均連対率を出すときなどに、通常の分布からかけ離れているため困るのです。

例えば、インが強い場が統計的に分かったとしても、それは一号艇に毎回A1選手が置かれているだけだとしたら、インが強い場という事にはなりません。

固有のレースを特定したい理由は、競艇場の特徴を分析する際に邪魔になるから、です。

ポイント!

・固有のレースとは、各競艇場が独自に開催しているレースを指す
・場別成績を算出する際に前提となる分布を歪めるので省きたい

先に結論

先に結論から言います。

統計的な検定ではうまくいきませんでした…

以上!!…

ではなく、順を追って解説したいと思います。※うまいアイデアをお持ちの方、コメントください。。

分析手法

正直、公式HPを直接目で見て確認していった方が確実で早い気もしますが、敢えて統計的に処理してみます

(ただの面倒くさがりとも言えます…)。

なお、ここで紹介する手法は私のいちアイデアに過ぎないので、正しさの保証はありません。

※統計的な手法としての正しさではなく、固有のレースを分類する手法の正しさ(適当さ)に関してです。

固有のレースを分類するのに、統計的仮説検定を用います。

統計的仮説検定

なにやら難しそうな言葉ですが、これが意味するところは次の通りです。

統計的仮説検定においては、仮説が正しいと仮定した上で、それに従う母集団から、実際に観察された標本が抽出される確率を求め、その値により判断を行う。その確率が十分に(予め決めておいた値より)小さければ、その仮説を棄却する(すなわち仮説は成り立ちそうもないと判断する)。

wikipedia

母集団と標本については、実際に説明する過程で、どのデータがそれらに当たるのかを説明します。

どういった仮説を立てるか

固有のレースというのは、選手の強さ(グレード)に偏りがあります。その偏りが、普通と比べて明らかに違っていれば、それは固有のレースと呼べるでしょう。

ここでの仮設とは、普通の分布(母集団)と固有のレースの分布(標本)は同じ分布である! という仮設です。

統計の検定って少し分かりにくいのですが、発想が逆なんですよね。違う事を検定するのは、同じである事を仮定します。

その仮設のもと、母集団が標本をどれだけの確率(p値という)で再現できるか、という事を検定します。

では、その母集団と標本は具体的に何に当たるでしょうか?

母集団(普通)と標本の定義

普通のレースってなんだろう?

単純には、各枠番にはA1,A2,B1,B2のどれかの選手が入るわけですから、競艇場関係なく全ての枠番でどのグレードの選手が選ばれているのかを集計してやります。

するとこうなります。

全競艇場の枠番別選手グレード分布

わかりづらいですが、ヒストグラム化するためにグレードをB2→1, B1→2, A2→3, A1→4 という数字に置き換えたので、読み替えてください。

こうして見ると、かなり偏りがありますね。特に驚くのが、1号艇のA1選手の多い事

これじゃあ、そりゃインが強いってなりますよね笑

逆に固有レースの分布はどうなるかというと、まあかなり偏るわけですね。

このように偏ったレースを検定したいので、このようにレース名称毎に括った分布を標本とします。

ただ、SGやG1になるとほぼ全員A1選手ですよね? それが普通じゃないのかというと、明らかに普通なので、そこも区別します。

さらに、明らかな固有レース分布が反映するのも普通ではない(※とはいえ競艇場全部に渡って足しあげたら平均化されると思っていたがそうならなかったので、やはり上記固有レースっぽいものは省きたい)ので、

各グレード別+「一般」or「一般戦」or「予選」の名が付くレースでグループ化したものを普通と定義します。

すると一般戦(G1やSGではない)ではこうなります。

図1)一般戦(かつ、レース名称が「一般」or「一般戦」or「予選」となるもの)における各枠番別選手グレード分布

この分布を、普通とします。つまり、母集団に当たります。

ここで注意すべき点は、この母集団はあくまで私が定義はしたものです。なので、この検定での分類全てにおける前提条件となります。(一般的な母集団は分からないので、こう置いて考えましょう、という事)

まとめると、母集団はレースグレード毎に三つ定義します。

グレードレース名称
SG,PG1,G1一般 or 一般戦 or 予選
G2,G3一般 or 一般戦 or 予選
一般戦一般 or 一般戦 or 予選

検定手法

コルモゴロフ–スミルノフ(KS)検定を使います。

詳しい説明は省きます(できない)が、要は、母集団と標本の累積確率を端からプロットしていったときに、その標本が描く曲線が母集団の曲線に対して尤度がどんだけか、というのをやっている(のだと勝手に思っている)んです。

上述しましたが、検定を行うとp値(0〜1の値をとる)を得ます。

仮設では、母集団と標本が同じである事を仮定しているので、p値が1に近いほど母集団の分布に近く、0に近いほど母集団の分布とは異なる、ということです。

python は便利なもので、このKS検定がライブラリ化されており、簡単にできます(良いまとめサイトをのせておきます。ここここ)。

ポイント!

・統計的仮設検定で分類する
・固有のレースは、枠番毎の選手の強さに偏りがあ事を前提とする
・普通の分布と固有のレースの分布は同じである、という仮設を立てる。その上で、どれだけ同じか(異なるか)を導く
・母集団(普通)は、レースグレード毎に分け、一般 or 一般戦 or 予選 の名称がつくレースとする
・KS検定を用いて検定し、p値から固有のレースかどうかを判断する

結果

さて、検定した結果から固有のレースをバーンっとお見せしたかったのですが、冒頭でも言ったようにうまくいきませんでした…。

何を条件に固有レースと判断するのかが難しいです。というのも、次の結果を見てください。

うまくいかない例①

蒲郡競艇場の一般戦における枠番別選手グレード分布

蒲郡競艇場の一般戦の分布です。

赤丸で囲ったところは、図1の"普通"分布と少しずれています。

標本の統計量は比較的十分なので、p値としては下記となりました。

1号艇3.68e-20
2号艇3.41e-25
3号艇7.02e-16
4号艇0.0449
5号艇0.466
6号艇2.66e-09

検定結果が厳しすぎる笑

分布の形はそこまでずれているわけではないので個人的には受容したいのですが、検定結果は容赦のないp値でした。

とはいえやはり、統計的には母集団からずれているのでしょう。

ここで、5号艇の分布は、有意水準を0.01%とすると分布は母集団と同じといえるので、つまり普通と言えます。

そこで、固有レース(というより普通の分布ではないレース)の条件を、全ての枠番が有意水準0.01%を下回っている事、とします。

その条件で検証したのですが…

うまくいかない例②

芦屋の場合、「一般」も「予選」も分布が異なりました。

芦屋だけでなく、他の競艇場もいろいろ引っかかりました。

図1と比較してもらうと一目瞭然ですが、全く違います。一号艇のA2以上の比率がおかしいです。

繰り返しますが、「予選」や「一般」の名称と一致するレースでの分布でこうなのです。

結論として、いくらレースグレード別で分けようが

一般や予選のレースは、そもそも競艇場毎に偏りがある

つまり、競艇場全体の母集団を定義しましたが、それには無理があったということなんです。

悪あがき

選手グレードがB2〜A1(1〜4)の絶対値で分布をとっているのが良くないかなと思い、各レース毎の平均値からの相対値(下記表のような計算)での分布で検定もしてみました。

今回の目的は、この検定の先にある競艇場毎の特徴(インが勝ちやすい)を見つける事なので、選手グレードが偏っていても、レース単位での強さのバランスが同じであれば問題ない、と考えたのです、

枠番数値レースでの平均相対値
1号艇A142.3331.666
2号艇B122.333-0.333
3号艇B122.333-0.333
4号艇A232.3330.666
5号艇B122.333-0.333
6号艇B212.333-1.333

しかし、結果はあまり変わらずで、こちらの検証方法も使えませんでした…。

ポイント!

・競艇場全体での「一般」「一般戦」「予選」の分布を母集団とした、各競艇場レースの分布をKS検定した結果はうまく検定できない
・競艇場毎にそもそも選手グレードの偏りがある
・選手の相対的な強さの分布でもうまく検定できない

まとめ

長くなりましたが、上述したように、仮設検定での分類はうまくいきませんでした。母集団の仮定が間違っているのか、その後の検定方法が間違っているのか…。いずれにしてもいつかリベンジしたいです。では

2019年12月25日競艇, 統計