確率計算について(編集中)
基本原理はP. K. Newton and J. B. Keller, "Probability of Winning at Tennis I. Theory and Data", 2005に基づく。確率計算
1. 記号の定義
PLAYER 1 を \(\mathrm{P1}\)、PLAYER 2 を \(\mathrm{P2}\) とする。
ポイント勝率
各選手 \(i\in\{\mathrm{P1},\mathrm{P2}\}\) について、次の記号を定義する。
\(N_i\):選手 \(i\) の総サーブ数
\(F_i\):選手 \(i\) の1st in数
\(S_i\):選手 \(i\) の2nd in数
\(D_i\):選手 \(i\) のダブルフォルト数
\(W_{1i}\):選手 \(i\) の1st won数
\(W_{2i}\):選手 \(i\) の2nd won数
このとき選手 \(i\) のセカンドサーブ回数\(O_{2i}=N_i-F_i\)であり、\(S_i=O_{2i}-D_i\)
1st in率\(r_{1i}=F_i/N_i\)
2nd in率\(r_{2i}=S_i/O_{2i}\)
1st won率\(w_{1i}=W_{1i}/T_{1i}\)
2nd won率\(w_{2i}=W_{2i}/S_i\)
試合中の観測値による、サーバー \(i\) のポイントwon率\(s_i=r_{1i}w_{1i}+(1-r_{1i})r_{2i}w_{2i}\)
以降 pをサーバーのポイントwon率、qをリターン側のポイントwon率とする。
ゲーム勝率
現在のゲームでサーバーが獲得しているポイント数を \(a\)、リターンが獲得しているポイント数を \(b\) とする。 ゲーム取得に必要な最低ポイント数を \(K_g\), 必要なポイント差を \(w_g\) とする。通常なら\(K_g=4\), \(w_g=2\)である。 状態 \((a,b)\) からサーバーがゲームを取る確率を \(G(a,b)\) と表記すると \[ G(a,b)=pG(a+1,b)+qG(a,b+1) \] という漸化式が成り立つ。境界条件は次の通りである。 \[ G(a,b)=1\qquad(a\geq K_g,\ a-b\geq w_g) \] \[ G(a,b)=0\qquad(b\geq K_g,\ b-a\geq w_g) \] ここでは計算を開始した状態におけるポイントwon率がゲーム終了まで維持されると仮定している。 例えばあるゲームがちょうどはじまったときの状態としてG(0,0)を考える。1ポイント後の状態は漸化式から \[G(0,0)=pG(1,0)+qG(0,1)\] となる。さらに1ポイント後の状態を漸化式に代入すると \[G(0,0)=p\left[pG(2,0)+qG(1,1)\right]+q\left[pG(1,1)+qG(0,2)\right]\] となる。これを繰り返すことで、最終的にすべての項が境界条件に到達し数値で与えられる。ただしデュースではこの限りでないため別途境界条件を計算する。
まず得失点差を\(d:=a-b\)と定義する。
\(d=-w_g\) に到達する前に\(d=w_g\) に到達する確率を \(R_d\) とする。つまりこれはサーバーがゲームを取る確率である。境界条件は
\[R_{w_g}=1, R_{-w_g}=0\]
漸化式は
\[R_d=pR_{d+1}+qR_{d-1}\]
これを解くと\(0 < {p} < 1 \) かつ \(p\neq\frac12\) のとき
\[
R_d=\frac{1-\left(\dfrac{1-p}{p}\right)^{d+w_g}}{1-\left(\dfrac{1-p}{p}\right)^{2w_g}}
\]
\(p=\frac12\) のとき
\[
R_d=\frac{d+w_g}{2w_g}
\]
となる。これがデュース状態における境界条件である。
次にタイブレークのゲーム勝率を計算する。まずサーブ順の変化に対応することを考える。 タイブレーク開始時のサーバーを \(i\) とする。リターンを\(j(\neq i)\)とする。 タイブレーク開始後にすでに終了したポイント数を \(n\) とする。 次のポイントのサーバーを \(\sigma(n,i)\) とする。 \(n\geq1\)について、\(k\) を次で定める。
\[ k:=\left\lfloor\frac{n-1}{2}\right\rfloor \] これを用いて \[ \sigma(n,i):=\begin{cases}j&k\equiv2,3\pmod 4\\i&k\equiv0,1\pmod 4\end{cases} \]サーバーが \(i\) のときに P1がポイントを取る確率を \(\pi(i)\) とすると \[ \pi(i):=\begin{cases}p &i=\mathrm{P1}\\q&i=\mathrm{P2}\end{cases} \]
以上を用いて勝率を計算する。タイブレーク内で P1 が獲得しているポイント数を \(a\)、P2 が獲得しているポイント数を \(b\) とする。 タイブレークの最低先取ポイント数を \(K_t\)、必要ポイント差を \(w_t\) とする。通常なら\(K_t=7\), \(w_t=2\)である。 タイブレーク開始時のサーバーが \(i\) のとき、状態 \((a,b)\) から P1 がタイブレークを取る確率を \(T(a,b;i)\) とする。
漸化式: \[ T(a,b)=\pi\left(\sigma(n,i)\right)T(a+1,b)+[1-\pi\left(\sigma(n,i)\right)]T(a,b+1) \] 境界条件: \[ T(a,b)=1\qquad(a\geq K_t,\ a-b\geq w_t) \] \[ T(a,b)=0\qquad(b\geq K_t,\ b-a\geq w_t) \] デュースは通常のゲームと同様にして計算できる。セット勝率
現在のセットでP1,P2が取っているゲーム数をそれぞれ\(a\), \(b\) とする。
セット取得に必要な最低ゲーム数を\(K_s\), 必要ゲーム差を \(w_s\),タイブレーク開始ゲーム数を \(K_{\mathrm{tb}}\) とする。通常なら\(K_s=6\), \(w_s=2\), \(K_{\mathrm{tb}}=6\)である。
ここでiがサーバーの状態\((a,b,i)\)を考える。次のベクトルを導入する。
\[
\mathbf{S}(a,b,i):=\begin{pmatrix}W_{\mathrm{P1}}(a,b,i)\\W_{\mathrm{P2}}(a,b,i)\\L_{\mathrm{P1}}(a,b,i)\\L_{\mathrm{P2}}(a,b,i)\end{pmatrix}
\]
\(W_{\mathrm{P1}}(a,b,i)\):P1がセットを取り、次セット第一ゲームのサーバーがP1である確率
\(W_{\mathrm{P2}}(a,b,i)\):P1がセットを取り、次セット第一ゲームのサーバーがP2である確率
\(L_{\mathrm{P1}}(a,b,i)\):P2がセットを取り、次セット第一ゲームのサーバーがP1である確率
\(L_{\mathrm{P2}}(a,b,i)\):P2がセットを取り、次セット第一ゲームのサーバーがP2である確率
\(i\neq j\)とする。g(i)をサーバーがiのときにP1がゲームを取る確率とする。漸化式:
\[
\mathbf{S}(a,b,i)=g(i)\mathbf{S}(a+1,b,j)+\left(1-g(i)\right)\mathbf{S}(a,b+1,j)
\]
境界条件:
P1 がセットを取る条件は\(a\geq K_s\)かつ\(a-b\geq w_s\)である。
(i)次セットの開始サーバーが P1 なら、
\(\mathbf{S}=(1,0,0,0)^{\mathsf T}\)
(ii)次セットの開始サーバーがP2なら、
\(\mathbf{S}=(0,1,0,0)^{\mathsf T}\)
反対にP2 がセットを取る条件は\(b\geq K_s\)かつ\(b-a\geq w_s\)である。
(iii)次セットの開始サーバーが P1 なら、
\(\mathbf{S}=(0,0,1,0)^{\mathsf T}\)
(iv)次セットの開始サーバーが P2 なら、
\(\mathbf{S}=(0,0,0,1)^{\mathsf T}\)
P1のセット勝率は\(W_{\mathrm{P1}}+W_{\mathrm{P2}}\)である。
\(a=b=K_{\mathrm{tb}}\)のときタイブレークが発生する。P1のタイブレーク勝率を\(t:=T(0,0;s)\)と表記する
(v)次セットの開始サーバーがP1なら
\(\mathbf{S}=(t,0,1-t,0)^{\mathsf T}\)
(vi)次セットの開始サーバーがP2なら
\(\mathbf{S}=(0,t,0,1-t)^{\mathsf T}\)
マッチ勝率
P1の獲得セット数を \(a\)、P2の獲得セット数を \(b\) とする。 マッチ勝利に必要なセット数を \(K_m\) とする。3セットマッチなら\(K_m:=3\)である。 現在のa,b及び次セット第一ゲームのサーバー\(i\)を組み合わせた状態を\((a,b,i)\)としてP1 がにマッチに勝つ確率を \(M(a,b,i)\) とする。境界条件は次式で与えられる。 \[ M(a,b,i)=1\quad(a\geq K_m),\qquad M(a,b,i)=0\quad(b\geq K_m) \] 漸化式は次の通り。 \[ M(a,b,i)=W_{\mathrm{P1}}M(a+1,b,\mathrm{P1})+W_{\mathrm{P2}}M(a+1,b,\mathrm{P2})+L_{\mathrm{P1}}M(a,b+1,\mathrm{P1})+L_{\mathrm{P2}}M(a,b+1,\mathrm{P2}) \]
計算
記録したポイントスタッツからポイント勝率->ゲーム勝率->セット勝率->マッチ勝率の順に数値を求められる。解析
2人のプレイヤーのpoint won率が分かれば任意の状態から期待される勝率を計算できる。とはいっても全てのパターンを網羅したところで有用な情報は得られないだろうから、ここでは試合開始時点から勝率を計算し point won率による変化をヒートマップとしてプロットする。正式な内容は後日追記するが、一例としてpointwon率が6割あれば負けることはそうそうない。