昨日の記事でcshogiに、2つのプログラム間の連続結果からLOS(Likelihood of superiority)の算出を実装したことを書いたが、その計算式は、チェスで使用されている式をそのまま適用した。
LOSについて
測定された勝率がどれくらい確からしいかを表したのがLOSである。
100%で確実に強いと言える。
これは、仮説検定(:P(勝ち)=P(負け)、
:P(勝ち)>P(負け))の片側検定のp値と等価である。
つまり、
LOS = 1 - p値
である。
チェスで使用されている近似式
Match Statistics - Chessprogramming wiki
の説明では、チェスで使用されている近似式は、勝ち、引き分け、負けの3項分布における、勝ちの確率が、以下の正規分布で近似できることを前提にしている。
そうすると、勝ちと負けの差は、2つの正規分布の差になるので、それも正規分布になる。
正規分布の差の公式を当てはめると、
となる。
LOSは、これの積分で求められるので、誤差関数を使うと、
で計算できる。
この式については、以下のフォーラムに議論の過程が残っている。
Likelihood of superiority - TalkChess.com
Calculating the LOS (likelihood of superiority) from results - TalkChess.com
将棋に当てはめて良いか
3項分布の近似が
となる部分の根拠を探したが、見つけられなかった。
将棋では、引き分けがチェスに比べて少ないため、むしろ2項分布で近似した方がよい気がしている。
2項分布を正規分布で近似する場合は、
となる。
N=100、引き分けが0の場合で、2つの正規分布の形を比較すると、
チェスの近似式
plt.plot(x, norm.pdf(x, 50, np.sqrt(100)))

2項分布
plt.plot(x, binom.pmf(x, 100, 0.5))

だいぶグラフの形が異なる。
まとめ
チェスで使用されているLOSについて、式がどのように導出されているかを調べた。
しかし、近似式の根拠をはっきり書いている記述が見つけられなかった。
チェスに比べて引き分けが少ない将棋に、近似式をそのまま当てはめると誤差が大きいような気がしている。
統計にそこまで詳しいわけでないので、統計に強い方のアドバイスがもらいたいと思っている。