必要なサンプルサイズを計算する(Python)
どーもこんにちは、ハヤトです。
アンケートやオンライン広告を計画するときに、 どれくらいのサンプルサイズがあれば妥当な検証結果を得られるか知りたい 、なんて時が結構あると思います。
今回は、必要なサンプルサイズをPythonで計算します(ちょっと無理やりですが・・・)
サンプルサイズについて
アンケートの回答数が3人なら、結果は妥当でないと感覚的にわかります。
しかし、それじゃあ50だったら?100, 300, 1000だったら?
多くのサンプルサイズを集めようと、するとそれだけ費用も手間もかかります。かといって、少なすぎては意味のない結果を得ることになり、それまた失敗です。
そこで、十分なサンプルサイズの最小数を求める必要が出てきます。
前提条件を考える
統計的に妥当かどうか判断するために、まずは前提条件から設定していきましょう。
許容できる誤差の範囲、何%で信頼できるか、回答比率はどれくらいか、の3つが分かれば計算できます。
例:
許容誤差範囲:5% 信頼水準:95% 回答比率:0.5
その後、下記の計算式に当てはめると、必要サンプルサイズを計算できます。
計算式
n = (信頼水準)2 * 回答比率*(1-回答比率)/(標準誤差2)
ココらへんは以下URLが詳しいので、「回答比率」とかがピンと来ない人は見てみるといいかもしれません。
Python で計算する
では実際にPythonで計算していきましょう。ぶっちゃけ単発なら手計算するほうが早いですが、プログラムのつなぎ込み時に使うことはあるかもしれません。
Rには{pwr}という便利なライブラリがあるのですが、Pythonには無いので自作します。
from scipy.stats import norm, zscore def sample_power_difftest(d, s, power=0.8, sig=0.05): z = norm.isf([sig/2]) zp = -1 * norm.isf([power]) n = s * ((zp + z)**2) / (d**2) return int(round(n[0])) if __name__ == '__main__': n = sample_power_difftest(0.1, 0.5, power=0.8, sig=0.05)
print(n) #395
と言った感じです。割と数式丸暗記でもいいような気がしてきますね・・orz
もっと詳しく
こちらの本を読みましょう。(買ったけど読んでないなんて言えない)
- 作者: 永田靖
- 出版社/メーカー: 朝倉書店
- 発売日: 2003/09/28
- メディア: 単行本(ソフトカバー)
- 購入: 20人 クリック: 277回
- この商品を含むブログ (14件) を見る
オラッオラッ(ノ`Д´)ノ彡┻━┻