ねこすたっと

ねこの気持ちと統計について悩む筆者の備忘録的ページ。

サンプルサイズ計算:1群の2値アウトカムの割合を既知の割合と比較する [R]

自分用のリファレンスとして、サンプルサイズ計算に関する記事をシリーズで書いています。 なるべく体裁を統一するために、以下のように決めています。

  • 群を示す添字について:
    • c, C = 対照群
    • t, T = 介入群*1
    • e, E = 要因群
    • 添字なし = 全体
  • 使用する記号:
    • p = 反応割合
    • μ = 平均値
    • σ = 標準偏差
    • Φ = 割り付け比 Nt/Nc(デフォルトは1)
    • α = αエラー(デフォルトは0.05)
    • β = βエラー(デフォルトは0.2)
    • z = 標準正規分布の累積分布関数

想定シナリオ

疾患Dに対する治療として、従来薬Cと新規薬Tのどちらが優れているだろうか?
従来薬Cについては既に多くの研究が行われており、奏効割合 25%だということが分かっている。 そこで今回の研究では、患者全員に新規薬Tを投与して、従来薬Cの奏功割合 25%と比較したい。 またこれまでの知見から、新規薬Tにおける奏効割合は30%と見込まれる。
両側有意水準 5%, 検出力 80%として、必要なサンプルサイズはどれくらいだろうか?

このシナリオでサンプルサイズを計算するのに必要な条件を整理してみると、以下のようになる。

  • 帰無仮説  H_0: p_T = p_C
  • 対立仮説  H_A: p_T \neq p_C
  • 有意水準:α = 0.05
  • 検出力:1-β = 0.80
  • 従来薬Cの奏効割合(既知の値): p_C = 0.25
  • 新規薬Tの奏効割合(想定値): \hat{p}_T = 0.3

方法0:手計算

従来薬Sの奏効割合を  p_S と書く。サンプルサイズは下の式で計算できる。

 
\begin{aligned}
N &= \frac{[ z_{1-\alpha/2} \sqrt{p_C (1-p_C)} + z_{1-\beta} \sqrt{p_T (1-p_T)} ]^2}{(p_T - p_C)^2} \\
\end{aligned}

上の式に、

  •  p_C = 0.25
  •  p_T = 0.3
  •  z_{1-\alpha/2} = 1.96
  •  z_{ 1 - \beta} = 0.8416

を代入すると、N = 609.4...となるので、サンプルサイズは610例必要なことが分かる。

方法1:pwr.p.test( )を使って計算する

まずpwrパッケージの関数を使ってみる。この関数では2つの割合ではなく、効果サイズ(h)を指定しなくてはいけない。

効果サイズhは逆三角関数arcsinを使って、以下のように定める。

 h = 2 \arcsin (\sqrt{p_T}) - 2 \arcsin (\sqrt{p_S})

library(pwr)
h = 2*asin(sqrt(0.3))-2*asin(sqrt(0.25))
pwr.p.test(h = h,
           sig.level = 0.05, 
           power = 0.8,
           alternative = "two.sided")
     proportion power calculation for binomial distribution (arcsine transformation) 

              h = 0.1120819
              n = 624.7919
      sig.level = 0.05
          power = 0.8
    alternative = two.sided

サンプルサイズは625例必要なことが分かる。

方法2:OneSampleProportion.Equality( )を使って計算する

次にTrialSizeパッケージの関数を使ってみる。
この関数では対立仮説(alternative hypothesis)は関数名に含まれているので、引数として指定する必要はない。*2

指定する引数は、以下のとおり。

  • alpha:αエラー
  • beta:βエラー
  • p:試験群に見込まれる割合
  • differ:試験群の割合と比較したい割合  p_0 の差(= p - p0)
library(TrialSize)
OneSampleProportion.Equality(alpha = 0.05,
                             beta = 0.2,
                             p = 0.3,
                             differ = 0.05)
[1] 659.3059

サンプルサイズは660例必要なことが分かる。

おわりに

  • 方法別に結構バラついた結果になった。
  • キーボードに乗られました。我が家の猫による初めてのタイピングは"qwas"でした。

参考資料

  • サンプルサイズ計算の本なのにあまり眠くならない!手計算はこの本を参考にしました。

*1:interventionのIを使うと1と区別しにくいのでtrial

*2:"equality"は"equivalent"(同等性)と混同しやすいので注意。この研究の仮説は「優越性(superiority)」なんだけど、このパッケージで"superiority"は非劣性試験と対応させた「十分な優越性(substantially superiority)」の意味で使われているので、これも注意。