分布と仮説検定
別に、正規分布なんかを持ち出して近似で計算しなくても、二項分布なんだから厳密に確率計算できるだろ、とか思った。
以下計算の仮定
- とりあえず引き分けは考えない
- 勝つと2点、負けると-1点ということで、60回で36点ということは32回の勝ちと28回の負け
で、勝率1/3の完全に運に支配されるゲームの場合、ゲーム60回の勝利回数はp=1/3、n=60の二項分布に従うはず。
なので、m 回勝つ確率は comb(60, m) * ( (1/3) ** m) * ( (2/3) ** (60 - m) ) と。(comb は組み合わせ)
じゃ、32 回以上勝つ確率は、と計算してみると、
def comb(n, m): ret = 1 if m > n - m: return comb(n, n - m) for i in xrange(0, m): ret = ret * (n - i) / (1 + i) return ret win_prob = 1.0 / 3.0 lose_prob = 2.0 / 3.0 def probability(win, total): lose = total - win return comb(total, win) * (win_prob ** win) * (lose_prob ** lose) def main(): print sum(probability(x, 60) for x in xrange(32, 60 + 1)) if __name__ == '__main__': main()
% python prob.py 0.00110798584902
ということで、大体 0.11% ぐらいですかね。
まぁ、運じゃないということをいうためには1/3という勝率が妥当なのかとか、全体の分布を見て云々とか、標本を恣意的に選ぶのはどうなのよとかいろいろツッコミどころは多いが。