MENU

R で割合の推定・検定に必要なサンプル数を計算する方法

割合に関するサンプルサイズ計算の方法

推定精度と検定の 2 種類あり

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

↑期間・数量限定で無料プレゼント中!

目次

推定精度に基づく方法

相対精度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

使い方解説動画。

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

まとめ

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

参考になれば。

関連記事

参考書籍

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

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

参考サイト

http://aoki2.si.gunma-u.ac.jp/R/pospt.html

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

リサーチクエスチョン探し?データ分析?論文投稿?、、、で、もう悩まない!

第1章臨床研究ではなぜ統計が必要なのか?計画することの重要性
  • 推定ってどんなことをしているの?
  • 臨床研究を計画するってどういうこと?
  • どうにかして標本平均を母平均に近づけられないか?
第2章:研究目的をどれだけ明確にできるのかが重要
  • データさえあれば解析でどうにかなる、という考え方は間違い
  • 何を明らかにしたいのか? という研究目的が重要
  • 研究目的は4種類に分けられる
  • 統計専門家に相談する上でも研究目的とPICOを明確化しておく
第3章:p値で結果が左右される時代は終わりました
  • アメリカ統計協会(ASA)のp値に関する声明で指摘されていること
  • そうは言っても、本当に有意差がなくてもいいの…?
  • なぜ統計専門家はp値を重要視していないのか
  • 有意差がない時に「有意な傾向があった」といってもいい?
  • 統計を放置してしまうと非常にまずい
第4章:多くの人が統計を苦手にする理由
  • 残念ながら、セミナー受講だけで統計は使えません。
  • インプットだけで統計が使えない理由
  • どうやったら統計の判断力が鍛えられるか?
  • 統計は手段なので正解がないため、最適解を判断する力が必要
第5章:統計を使えるようになるために今日から何をすれば良いか?
  • 論文を読んで統計が使えるようになるための5ステップ
第6章:統計を学ぶために重要な環境
  • 統計の3つの力をバランスよく構築する環境

以下のボタンをクリックして、画面に出てくる指示に従って、必要事項を記入してください。

この記事を書いた人

統計 ER ブログ執筆者

元疫学研究者

統計解析が趣味

コメント

コメント一覧 (2件)

コメントする

目次