TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

2つのプログラムの勝率に違いがあるか検定する

昨日書いた記事で、DQNとDDQNのランダムに対する勝率の違いについて、統計的に違いがあると言えるのか検証してみた。

昨日の結果
結果 勝率
DQN 833勝152敗15分 84.57%
DDQN 847勝131敗22分 86.61%

※勝率は引き分けを無効として計算した。

仮説検定

以下のように帰無仮説と対立仮説を設定する。

帰無仮説 DQNとDDQNの勝率は等しい
対立仮説 DDQNの方が勝率が高い

統計量

2つの母比率の差を検定する際には、下記の統計量zを使用する。
この統計量は、標準正規分布N(0, 1)に従う。
\displaystyle
z=\frac{\widehat{p}_{1}-\widehat{p}_{2}}{\sqrt{\widehat{p}(1-\widehat{p})\left(\frac{1}{n_{1}}+\frac{1}{n_{2}}\right)}}

勝敗の結果を当てはめると、
\displaystyle
\widehat{p}_{1} = 0.8457 \\
\widehat{p}_{2} = 0.8661 \\
\widehat{p} = (833+847)/(1000-15+1000-22) = 0.8558 \\
n_1 = 985 \\
n_2 = 978
なので、統計量zは、
\displaystyle
z = -1.2845
となる。

棄却ルール

DDQNの方が勝率が高いことを示したいので、片側検定を用いる。
有意水準は、5%の半分=2.5%とする。

下側の棄却域は、Pythonを使って計算すると、

from scipy.stats import norm
norm.ppf(0.025)
Out: -1.9599639845400545

と算出できる。

z > -1.96であるため、zは、棄却域に入っていない。

結論

帰無仮説は、棄却できない。
よって、前回のランダムとの対局結果からは、DDQNは、DQNよりも勝率が高いとは言えない。