自分用のリファレンスとして、サンプルサイズ計算に関する記事をシリーズで書いています。 なるべく体裁を統一するために、以下のように決めています。
- 群を示す添字について:
- 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%として、必要なサンプルサイズはどれくらいだろうか?
このシナリオでサンプルサイズを計算するのに必要な条件を整理してみると、以下のようになる。
- 帰無仮説
- 対立仮説
- 有意水準:α = 0.05
- 検出力:1-β = 0.80
- 従来薬Cの奏効割合(既知の値): = 0.25
- 新規薬Tの奏効割合(想定値): = 0.3
方法0:手計算
従来薬Sの奏効割合を と書く。サンプルサイズは下の式で計算できる。
上の式に、
- = 0.25
- = 0.3
- = 1.96
- = 0.8416
を代入すると、N = 609.4...となるので、サンプルサイズは610例必要なことが分かる。
方法1:pwr.p.test( )を使って計算する
まずpwrパッケージの関数を使ってみる。この関数では2つの割合ではなく、効果サイズ(h
)を指定しなくてはいけない。
効果サイズhは逆三角関数arcsinを使って、以下のように定める。
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 - p0)
library(TrialSize) OneSampleProportion.Equality(alpha = 0.05, beta = 0.2, p = 0.3, differ = 0.05)
[1] 659.3059
サンプルサイズは660例必要なことが分かる。
おわりに
- 方法別に結構バラついた結果になった。
- キーボードに乗られました。我が家の猫による初めてのタイピングは"qwas"でした。
参考資料
- サンプルサイズ計算の本なのにあまり眠くならない!手計算はこの本を参考にしました。