ランキングシステムについて(その1)
その2は相性データについて書いてあります。
ランキングポイントとは
例えば、Aさん、Bさん、Cさん、Dさんのランキングポイントがそれぞれ、5ポイント、−2、3、−6であるとします。
AB対CDという組み合わせでダブルスゲームを行った際に、
AB組は5−2で合計+3ポイント、一方CD組は3−6で合計−3ポイントなので、
3−(−3)の6ポイント差、つまり21-15という試合結果が予想されるポイントになっています。
ランキングポイントの考え方
ランキングポイントは過去の戦績から統計的に求めることができます。
例えば、AB対CDのダブルスの試合を10回やったとします。
21-14, 21-18, 23-21, ....などとデータが得られます。
このようなデータからAB対CDのダブルスの試合で、最もありそうな点数差が分かってきます。
仮にそれを6点とします。
組合わせを変えて、AC対BDとAD対BCでデータをとります。点数差は16、−2点としましょう。
この時、各プレーヤーが持っているランキングポイント、
PA、PB、PC、PDから計算される(PA+PB)−(PC+PD)の値が得点差nになる様に、逆にランキングポイントPA、PB、PC、PDを計算します。
今の場合だと以下の3つの連立方程式を立てることができます。
(PA+PB)−(PC+PD)=6
(PA+PC)−(PB+PD)=16
(PA+PD)−(PB+PC)=−2
未知数4個で方程式3つでは解は決まらないので、全プレーヤーのランキングポイントの合計がゼロになる様に定義します。つまり
(PA+PB+PC+PD)=0
以上4つの連立方程式を解くことで、全てのプレーヤーのランキングポイントが得られます。
このランキングポイントを用いれば、接戦となるようにハンデをあたえることができます。各ペアのポイントの合計を比べ、少ない方のペアにこれらの差の値をハンデとして初めに与えるとよいでしょう。
上手い人の方がポイントが高く、ゴルフ等のハンデとは逆なので、ランキングポイントと呼んでいます。
このランキングポイントの計算の方法は、考え方としてはバドミントンだけでなく種々の競技に応用できると思いますが、ここではバドミントン用に作ったランキング計算プログラムについて、詳細を以下に示します。
ランキングポイント算出の方法
得点差とランキングポイントの差がなるべく近付くように考慮して連立方程
式を立てるために、最小自乗法という方法を用いています。
具体的には、試合総数Nのうちi番目の試合で、
(A1iさん、A2iさん)対(A3iさん、A4iさん)の結果がDi点差で前者の勝ち、
または−Di点差で後者の勝ちだったとします(iは、1〜Nの任意の数)。こ
こで、参加しているプレーヤーが、Aさん、…、Zさんの計m人だとすると、
A1i、…、A4i(iは、1〜N)は、A〜Zのどれかを表します(但し、一人二役
はできないので、A1i≠A2i,A1i≠A3i,A1i≠A4i,等)。この時
N 2
S=Σ{(PA1i+PA2i)−(PA3i+PA4i)−Di} i=1 (1)
-
と置き(以降Σ記号は全てi=1〜Nの和)、これが最小になるような、m人分
のポイントPA、…、PZを求めれば良い訳です。Sが最小(極小)となるに
は、SをPXで偏微分した結果をゼロと置けばよいのです(偏微分が分から
ない場合は、大学1〜2年時の数学(解析学)の教科書を見て下さい。それ
が難しい人は、“微分とおんなじ様なもの”と思って下さい。微分が分から
ない人は高校の数学の教科書を見て下さい)。つまり、
δS/δPX=0 (2)
(偏微分の記号が通常と違いますが、御容赦下さい)
.Xは、A、…、Zのm個の値を取るので、これでm個の連立方程式ができ、こ
れを解くとm個の変数PA、…、PZが求まるというわけです(厳密にはこの
表現は不正確です−>上級者へのコメント参照)。
(2)式は
2Σ{(PA1i+PA2i)
−(PA3i+PA4i)−D
i}{δ(X,A1i)+δ
(X,A21i)−δ(X,A3i)−δ(X,A4i)}=0 (2-1)
そして、
- Σ[PA1i{δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}
- +PA2i{δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}
- −PA3i{δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}
- −PA4i{δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}
- −Di{δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}]
- =0 (2-2)
と計算できます(δ(L,M)は、L=Mの時1、その他の時は0)。XがA〜Zの各
場合の個の(2-2)式を合わせて、結局
MP=D (3)
の方程式となります。
ここで、Pは、(PA、PB、…、PZ)のベクトル、Dは、
DX=ΣDi{δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)} (3-1)
をX番目の要素とするベクトル、Mは
- MXY=Σ[δ(Y,A1i){δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}
- +δ(Y,A2i){δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}
- −δ(Y,A3i){δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}
- −δ(Y,A4i){δ(X,A1i)+δ(X,A21i)−δ(X,A3i)−δ(X,A4i)}]
(3-2)
をX,Yの要素とする行列です。(3)式をを解くことで、各プレーヤーのランキ
ングポイントを要素とするベクトルPが得られます。
ランキングポイント算出のプログラム
ランキング計算のプログラムでは、上記の式からちょっと想像されるよりも、
簡単にDとMの各要素を計算できます。それは、試合結果の
表を順番に読み
込んでいって、そのプレーヤーに関係するDXとMXYの値を加算していけば、
DとMが出来上がるからです。その後、D(ベクト
ル)とM(行列)からm
個のランキングポイントからなるPベクトルを導出するのには、掃き出し法
(私は高校で習ったと思います。初等的な数値計算法の本等に説明があると
思います)を使いました。最後に、ソートや試合数の少ないプレーヤーの排
除をして、ランキングの結果を表示しています。
セッティングの場合には、実際の点差の半分をランキングポイントの計算の
ための点差とみなしています。
シングルスについても、同様の計算式で、同様のランキングポイントが計算
できます。
上級者(バドミントンの、ではありません)へのコメント
MP=Dの式では、見かけ上はm個の方程式ができますが、
このうち独立
なのは(m−1)個のみで、これだけからm個の変数を解くことはできませ
ん。これは、点差とランキングポイントの差についての式しか使えないため
に、ランキングポイントが相対的な意味しか持たず、絶対的な値が決まらな
いことによるものです。つまり、全てのプレーヤーのランキングポイントを
1点上げたとしてもポイントの差しか問題にしていないので、必要な方程式
は同様に全て成り立ってしまうからです。行列Mに対する見方からは、行列
要素の導き方から、各行(または列)の和がゼロとなる条件があるため、M
の1〜(m−1)行目の値から、最後のm行目の数値が全て決まってしまう、
つまり独立なのは(m−1)個の行だけということになります。また、Mの
行列式を計算するとゼロとなるはずで、やはり一義的にランキングポイント
が解けないことを意味します。
そこで、ランキングポイントに絶対的な基準を与えるために、全プレーヤー
のランキングポイントの合計がゼロになる様にしています。具体的には行列
Mの最終行の要素を全て1、ベクトルDの最終要素を0としています。こう
することで、Mの行列式はゼロでなくなり、Pは一義的に解けることになり
ます。まれに、それでも一義的に解けない(Mの行列式がゼロになる)場合
があります。これは、プレーヤーが2つ(かそれ以上)のグループに分かれ
てしまい、これらのグループ間で独立になってしまう場合です。ダブルスで
は、異なったグループのプレーヤーが一緒にプレーした試合結果があっても、
グループの独立性が保たれている場合があります。
独立なグループが2つだけの場合、掃き出し法では、計算の過程で容易にグ
ループ分けができる様なので、各グループのポイントの平均をゼロとする
(根拠のない)条件を付け加えて、強引にランキングポイントを算出してい
ます。独立なグループが3つ以上の場合には、エラーとみなし計算を放棄す
ることにしています。
バドミントン・ホームページへ
ランキングシステムについて
山崎謙治