点推定値が100%に近いとき、より適切に割合の信頼区間を計算する方法 Wilson’s score method(ウィルソンのスコア法)の解説。
割合の信頼区間は近似を使っている
割合の信頼区間は以下の式で計算できる。
これは正規分布を近似的に使っている。
$$ \hat{p} \pm z_{\alpha/2} \sqrt{\frac{\hat{p}(1 – \hat{p})}{n}} $$
100例で50%の点推定値だったとすると、95%信頼区間は以下のように計算される。
$$ 0.5 \pm 1.96 \sqrt{\frac{0.5(1 – 0.5)}{100}} = (0.402, 0.598) $$
点推定値が100%に近い場合は信頼区間はどうなるか?
点推定値が97%の場合を計算してみる。
この場合信頼区間は以下のようになり、適切に計算されない。
信頼区間の上限が1を超えている。
$$ 0.97 \pm 1.96 \sqrt{\frac{0.97(1 – 0.97)}{100}} = (0.9365649, 1.0034351) $$
点推定値が100%に近い場合はWilson’s score methodを使う
点推定値が100%に近い場合はWilson’s score methodを使うと適切な信頼区間になる。
Wilson’s score methodは以下のように計算する。
$$ \frac{\hat{p} + \frac{z_{\alpha/2}^2}{2n}}{1 + \frac{z_{\alpha/2}^2}{n}} \pm \frac{z_{\alpha/2}}{1 + \frac{z_{\alpha/2}^2}{n}} \sqrt{\frac{\hat{p}(1 – \hat{p})}{n} + \frac{z_{\alpha/2}^2}{4n^2}} $$
R を使って計算する。
p.hat <- 0.97
alpha <- 0.05
z <- qnorm(alpha/2, lower.tail=FALSE)
n <- 100
(p.hat+z^2/(2*n))/(1+z^2/n) + c(-1, 1)* z/(1+z^2/n)*sqrt((p.hat*(1-p.hat))/n + z^2/(4*n^2))
計算結果は、(0.9154806, 0.9897455)で、信頼区間上限が1を超えていない。
> (p.hat+z^2/(2*n))/(1+z^2/n) + c(-1, 1)* z/(1+z^2/n)*sqrt((p.hat*(1-p.hat))/n + z^2/(4*n^2))
[1] 0.9154806 0.9897455
点推定値が0に近いときはどうなるか?
点推定値が0に近いとき、例えば、100例中3例、3%の95%の信頼区間はどうなるか?
正規近似を使うと、以下の通り信頼区間の下限が0を下回ってしまう。
> 0.03 + c(-1,1)*1.96*sqrt(0.03*(1-0.03)/100)
[1] -0.003435095 0.063435095
Wilson’s score methodを使うと信頼区間下限が0を下回らない結果が得られる。
p.hat <- 0.03
alpha <- 0.05
z <- qnorm(alpha/2, lower.tail=FALSE)
n <- 100
(p.hat+z^2/(2*n))/(1+z^2/n) + c(-1, 1)* z/(1+z^2/n)*sqrt((p.hat*(1-p.hat))/n + z^2/(4*n^2))
結果は、0.01から0.08となった。
> (p.hat+z^2/(2*n))/(1+z^2/n) + c(-1, 1)* z/(1+z^2/n)*sqrt((p.hat*(1-p.hat))/n + z^2/(4*n^2))
[1] 0.01025452 0.08451936
割合の信頼区間エクセル計算機
エクセルファイルを作成した。
良ければどうぞ。
割合の信頼区間計算機【エクセル計算機】 | TKER SHOP
使い方動画を作成した。
こちらもよければ。
まとめ
割合の区間推定は正規近似を用いて簡単に計算できるが、100%や0%に近いと信頼区間上限や下限が適切に計算されない。
信頼区間上限が1を超えてしまったり、下限が0を下回ってしまった場合はWilson’s score methodを使うのが適切だ。
コメント