統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

母比率のサンプルサイズ計算

母比率に関するサンプルサイズ計算の方法

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

母比率のサンプルサイズ計算 推定精度に基づく方法

相対精度deltaで,母比率を推定する際のサンプルサイズ計算は、以下のような R スクリプトで計算できる。

myPsize <- function(p,delta){
n <- 4*(1-p)/(p*delta^2)
c("N at least"=n)
}

たとえば8%の割合を相対精度20%(95%信頼区間が±1.6%という意味)で推定するなら、サンプルサイズは1150になる。

> myPsize(0.08,0.2)
N at least 
      1150 

確認のため二項分布で95%信頼区間を求めてみると、おおよそ±1.6%(6.5%~9.7%)に収まっていることがわかる。

> binom.test(1150*0.08, 1150)

        Exact binomial test

data:  1150 * 0.08 and 1150
number of successes = 92, number of trials = 1150, p-value < 2.2e-16
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
 0.06497587 0.09721197
sample estimates:
probability of success 
                  0.08 

たとえば、「はい」の回答が80%であることを、推定精度10%(±8%)で推定したいとすれば、サンプルサイズは100人と計算される。

95%信頼区間は71%から87%と推定され、±8%にはだいだい収まっている。

> myPsize(0.8, 0.1)
N at least 
       100 

> binom.test(80,100)

        Exact binomial test

data:  80 and 100
number of successes = 80, number of trials = 100, p-value = 1.116e-09
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
 0.7081573 0.8733444
sample estimates:
probability of success 
                   0.8 

母比率のサンプルサイズ計算 推定精度に基づく方法をエクセルで

母比率を求めるサンプルサイズ計算を推定精度に基づいて行う方法をエクセルで実行できる。

よければどうぞ。

アンケートは何人に取ればいい?―割合の信頼区間―【エクセルでサンプルサイズ】 | TKER SHOP

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

母比率のサンプルサイズ計算 検定に基づく方法

母集団の比率=割合がわかっていて、その割合と統計学的有意に異なる割合であることを検出するためのサンプルサイズ計算。

必要なのは母集団の割合とサンプルでの割合と検出力。

R のスクリプトは以下の通り。

samplesize.pop.prop.test <- 
  function (P0, P, power, alpha=.05){
  A <- sqrt((P0*(1-P0))/(P*(1-P)))
  n <- ((qnorm(power)+qnorm(alpha/2,lower.tail=F)*A)*
  sqrt(P*(1-P))/(P-P0))^2

METHOD <- 
  "Sample size calculation of the one-sample proportion test."
  structure(list(n=n, p=P, p0=P0, sig.level=alpha, power=power, 
  alternative="Two sided", method=METHOD), class="power.htest")
}

例えば、何も効果がなければ五分五分の50%だが、効果があって「はい」と回答する人が80%になると予想する。

80%の結果が、50%とは統計学的有意に異なると結論付けるためには、どのくらいのサンプルサイズが必要か?

> samplesize.pop.prop.test(P0=0.5, P=0.8, power=0.8)

     Sample size calculation of the one-sample proportion test. 

              n = 19.26129
              p = 0.8
             p0 = 0.5
      sig.level = 0.05
          power = 0.8
    alternative = Two sided

答えは、20人必要と計算される。

非常に小さい調査でよいことがわかる。

95%信頼区間を求めてみると、56%から94%で、50%とは統計学的有意に異なることが確認できた。

> binom.test(16,20)

        Exact binomial test

data:  16 and 20
number of successes = 16, number of trials = 20, p-value = 0.01182
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
 0.563386 0.942666
sample estimates:
probability of success 
                   0.8 

また、例えば、母集団では発生が10%=0.1とわかっていることがある。

新しい予防法では発生が5%=0.05に抑えられる可能性がある。

母集団の0.1と有意に異なるという結果を導くには、検出力80%としたときにサンプルサイズはいくつになるか?

> samplesize.pop.prop.test(P0=0.1, P=0.05, power=0.8)

     Sample size calculation of the one-sample proportion test. 

              n = 238.0332
              p = 0.05
             p0 = 0.1
      sig.level = 0.05
          power = 0.8
    alternative = Two sided

結果は、239例必要と計算された。

つまり、239例をサンプリングして、5%つまり約12例で病気が発生したとすると、母集団の10%とは統計学的有意に異なって低いと結論づけられる。

二項分布で計算した結果は以下の通り。

p値は0.05を下回って、有意水準5%で、統計学的有意。

> binom.test(12,239,p=0.1)

        Exact binomial test

data:  12 and 239
number of successes = 12, number of trials = 239, p-value = 0.009147
alternative hypothesis: true probability of success is not equal to 0.1
95 percent confidence interval:
 0.02620962 0.08606230
sample estimates:
probability of success 
            0.05020921 

検出力を計算することもできる。

検出力を計算するスクリプトは以下の通り。

power.pop.prop.test <- 
  function (P0, P, n, alpha=.05){
  A <- sqrt((P0*(1-P0))/(P*(1-P)))
  B <- (P-P0)/(sqrt((P*(1-P))/n))
  power <- pnorm(-1*qnorm(alpha/2, lower.tail=FALSE)*A-B)+
  pnorm(qnorm(alpha/2, lower.tail=FALSE)*A-B, lower.tail=FALSE)

METHOD <- "Power calculation of the one-sample proportion test." 
structure(list(n=n, p=P, p0=P0, sig.level=alpha, power=power, 
alternative="Two sided", method=METHOD), class="power.htest") 
}

母比率が0.1、サンプルの比率が0.05、サンプルサイズが200だとすると、検出力はどのくらいか?

> power.pop.prop.test(P0=0.1, P=0.05, n=200)

     Power calculation of the one-sample proportion test. 

              n = 200
              p = 0.05
             p0 = 0.1
      sig.level = 0.05
          power = 0.7076557
    alternative = Two sided

計算結果は71%と計算される。

検出力が80%になるためには上記のようにあと39人必要というわけだ。

母比率のサンプルサイズ計算 検定に基づく方法をエクセルで

エクセルでサンプルサイズ計算ができる。

よければどうぞ。

母比率の検定(母集団の割合の検定)サンプルサイズ計算【エクセルでサンプルサイズ】 | TKER SHOP

使い方解説動画。

こちらもよければどうぞ。

youtu.be

まとめ

母比率を求めるときのサンプルサイズ計算を、推定精度に基づく方法と検定に基づく方法を解説した。

参考になれば。

関連記事

toukeier.hatenablog.com

参考書籍

丹後敏郎 著 医学への統計学

永田靖 著 サンプルサイズの決め方 朝倉書店
11.1 母不良率の検定
11.1.2 検出力の計算方法

参考サイト

aoki2.si.gunma-u.ac.jp