Pythonで母比率の95%信頼区間を区間推定し、妥当なサンプルサイズを決定する方法

estimate-pop-rate

SPONSORED LINK

こんにちは、データサイエンティストのたぬ(@tanuhack)です!

アンケートの回答数や広告の表示回数、テレビの視聴率などの、日常生活のありとあらゆる場所で統計学の『母比率』が使われています。

母比率の信頼区間もまた、母平均の区間推定のように算出することができます。

Pythonで母平均の95%信頼区間を区間推定する方法【母分散が未知】

2019.03.17

そこで今回は、母比率の95%信頼区間を区間推定し、さらにその発展である推定に『妥当な』サンプルサイズを決定する方法を紹介します。

二項分布で母比率の95%信頼区間を推定する

母比率pの信頼区間を求める数式

    $$ \hat{p}-z_{\alpha/2} \times \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} \leqq p \leqq \hat{p}+z_{\alpha/2} \times \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} $$

例題

とあるF県でカレーをスパイスから作ったことがあるか調べるため街頭アンケートを行ったところ、通行人200人のうち7人が作ったことがあると回答した。

信頼係数95%で、カレーをスパイスから作ったことがあると回答した人の割合の信頼区間を求めよ。

Pythonを使って、二項分布で母比率pの95%信頼区間を推定するためには、SciPyのscipy.stats.binom.interval関数を使います。

scipy.stats.binom.interval(alpha=A, n=B, p=C, loc=D)
interval関数のオプション 意味
alpha 信頼区間(0.95=95%、0.99=99%など)
n サンプルサイズ、試行回数
p 標本比率

scipy.stats.binom|公式ドキュメント(英語)

今回は、信頼区間が0.95、試行回数が200、標本比率は7/200(0.035)であるので。

import numpy as np
import scipy as sp

alpha=0.95 # 信頼区間
n=200      # 試行回数
p=0.035    # 標本比率(成功回数を試行回数で割ったもの)
bottom, up = sp.stats.binom.interval(alpha=alpha, n=n, p=p, loc=0)
print('母比率pの95%信頼区間: {:.2f} < p < {:.2f}'.format(bottom/n, up/n))
出力
母比率pの95%信頼区間: 0.01 < p < 0.06

したがって、F県でカレーをスパイスから作ったことがあると回答した人の割合は、95%の確率でおおよそ1%から6%だろうと推定することが出来ました。

妥当なサンプルサイズを決定する

妥当なサンプルサイズを算出する数式

    $$ 2 \times z_\frac{1-\alpha}{2}} \times \sqrt{\frac{\hat{p}(1-\hat{p})}{n}} $$

次にやりたいことは、先程求められた『1〜6%』という割合の範囲を狭めたいことだと思います。

この範囲で意思決定に問題なければそのままでも良いのですが、もう少しだけ誤差の範囲を狭めたいと思いませんか?

いま、5%という開きがあるので、この開きを最大2%までにして、それを可能にする最小のサンプル数を求めてみましょう。

import numpy as np
import scipy as sp

# アンケートの有効回答数
alpha=0.95  # 信頼区間
p=0.035     # 標本比率(成功回数を試行回数で割ったもの)
sample=0.02 # 標準誤差の幅(求めたい母比例の幅(2%))
bottom, up = sp.stats.norm.interval(alpha, loc=0, scale=1)
print(pow((2*up*np.sqrt(p*(1-p)))/sample, 2))
出力
1297.4527166894406

したがって、誤差の範囲を2%までに狭めたい場合は、サンプル数が1298以上であれば良いことがわかりました。

さいごに

今回は、二項分布で母比率pの95%信頼区間を推定するために、PythonのSciPyライブラリのscipy.stats.binom.interval関数を使って算出し、妥当なサンプルサイズを決定するために、scipy.stats.norm.interval関数を使って算出しました。

  1. サンプル数nが大きくなると信頼区間の幅は狭くなり、より正確な推定ができる
  2. 標本比率\hat{p}が0.5のとき、最も信頼区間が広くなり、0.5から外れるごとに信頼区間は狭くなる
  3. 母比率の信頼区間の幅はz_\frac{1-\alpha}{2}}に比例する

以上3点に気をつけて、意思決定に必要十分なサンプルサイズを定め、適切な区間推定を行いましょう。

それでは

SPONSORED LINK

estimate-pop-rate

ABOUTこの記事を書いてる人

たぬ

26歳。作業の90%をPythonにやらせているデータサイエンティスト兼ブロガー。 単純作業を自動化させ、クリエイターの生産性を上げるために当ブログを設立。毎月15万人に読まれています。 ストレングスファインダー:戦略性・最上志向・目標志向・未来志向・個別化