概要
今回は偏ったコインを仮説検定によって見分ける方法を解説します
普通のコイン、つまり公正なコインは表または裏が出る確率は両方とも二分の一です。
それに対して偏ったコインというのは表か裏のどちらかの方が出やすいコインを指します。
今回は使用されているコインが偏ったコインであるかどうかをPythonを用いて判別する方法をお伝えしてまいります
偏ったコインの判別には仮説検定を用いるのですが以下の順で解説してゆきます
- 仮説検定の理論について解説
- Pythonを用いた仮説検定の実践方法
仮説検定
まずは問題として次のような状況を考えます
あなたは友人と昼食のおごりを賭けてコイントスをしています。
裏が出ればあなたの勝ち、表がでれば友人の勝ちです。
今までにコイントスを30回行い、21回表が出ました。
このコインは公正なコインでしょうか。それとも偏ったコインでしょうか。
この問題に対して仮説検定を行ってゆきます
仮説検定とは、ある仮説が正しいか統計学的に検証する手段のことです
そして、仮説検定の流れは次の通りです。
- 帰無仮説を立てる
- 有意水準を設定する
- 統計検定量を計算する
- P値を推定する
- P値と有意水準を比較し、帰無仮説を棄却すべきか判断する
順に解説してゆきましょう
帰無仮説を立てる
まず初めに、帰無仮説を立てます
帰無仮説とは主張したい仮説とは逆の仮設のことです。
今回においては、コインが偏っていることを主張したいので、その逆
つまり、「コインは公正である」を帰無仮説として設定します
有意水準を設定する
次に有意水準を設定します
有意水準とは帰無仮説を棄却する基準を意味し、のちに説明するP値と比較する際に使用します
有意水準は一般的には5%に設定されることが多いので今回はそれに準じて5%に設定することにしましょう
統計検定量を計算する
次に検定統計量を計算します。
検定統計量とは平均が0、分散が1となるようにデータを標準化した値のことです
この検定統計量は二項分布の場合、画面上の式で計算することができます。
この式に今回の値を当てはめてみると、約2.190になることがわかります
検定統計量は正規分布に従うので、2.190が分布のどのあたりに位置するのかがわかります

P値を推定する
P値は先ほどの図における面積で表すことができます
そして、統計検定量が1.96を上回っていればP値は0.05より低いことになります
今回の統計検定量は2.190なのでP値は0.05より低いことがわかります。
P値と有意水準を比較し、帰無仮説を棄却すべきか判断する
最後に帰無仮説を棄却すべきかを判断します
P値が0.05より低いということは有意水準を下回るので帰無仮説が棄却されることがわかります
つまり、コインは偏っている可能性があるということがわかります
ただし、P値が0.05を下回ったからといって、必ずしもコインが偏っているとは限りません。
コインが偏っていないのにもかかわらず、非常に運が悪く21回の表が出た可能性もあります
Pythonで仮説検定
先程は計算を自力で行いましたが、Pythonを用いれば簡単にP値を計算することができます
計算を行うための環境としてはGoogle ColaboratoryまたはJupyterLab Desktopを使います。
Google ColaboratoryはGoogleアカウントを持っていれば簡単に無料で試すことができます

まずはfrom scipy import stats
で統計のライブラリをインポートします
これで統計のライブラリが使えるようになります
続いて、stats.binomtest(21, 30, 0.5)
と入力します
第一引数は表になった数、第二引数は試行回数、第三引数は帰無仮説における確率です。
これを実行し、pvalueと表示されている部分の値を確認すると約0.04277です
つまり有意水準である0.05を下回っていることが確認できます