自分用のリファレンスとして、サンプルサイズ計算に関する記事をシリーズで書いています。 なるべく体裁を統一するために、以下のように決めています。
- 群を示す添字について:
- c, C = 対照群
- t, T = 介入群*1
- e, E = 要因群
- 添字なし = 全体
- 使用する記号:
- p = 反応割合
- μ = 平均値
- σ = 標準偏差
- Φ = 割り付け比 Nt/Nc(デフォルトは1)
- α = αエラー(デフォルトは0.05)
- β = βエラー(デフォルトは0.2)
- z = 標準正規分布の累積分布関数
想定シナリオ
疾患Dに対する治療として、従来薬Cと新規薬Tのどちらが優れているだろうか?
ランダム化比較試験で患者を1:1に割り付けて、治療の奏功割合を比較したいと考えている。
これまでの知見から、従来薬Cにおける奏効割合は4%、新規薬Tにおける奏効割合は8%と見込まれる。
両側有意水準 5%, 検出力 80%として、必要なサンプルサイズはどれくらいだろうか?
想定される割合が0または1に近い場合は、正規分布へ近似する方法ではなく、Fisher正確検定(Fisher's exact test)を用いる方法が推奨される。
「想定される割合が0または1に近い」の目安は、想定される割合のいずれかについて、p(1-p) < 0.15 となる場合。 上記のシナリオだと 0.04×(1-0.04) = 0.0384 < 0.15, 0.08×(1-0.08) = 0.0736 < 0.15 なので、正確検定に基づいたサンプルサイズ計算を行うべき。
このシナリオでサンプルサイズを計算するのに必要な条件を整理してみると、以下のようになる。
- 帰無仮説
- 対立仮説
- 有意水準:α = 0.05
- 検出力:1-β = 0.80
- 割り付け比:φ = = 1
- 従来薬Cの奏効割合(想定値): = 0.04
- 新規薬Tの奏効割合(想定値): = 0.08
方法0:手計算
標準正規分布を使った検定で計算される1群のサンプルサイズを とすると、正確検定で必要になるサンプルサイズ は少し多くなる。
の求め方は下の記事を参照のこと。 (リンク)
= 552.16...となるので、上の式に諸々を代入すると = 601.1...となり、1群あたり602例、両群で1204例必要ということになる。
方法1:ss2x2( )を使って計算する
exact2x2パッケージの関数を使ってみる。引数は以下のとおり(他にもあるけど割愛)。
p0
,p1
:想定する2つの割合n1.over.n0
:割り付け比(N1/N0)sig.level
:有意水準power
:検出力alternative
:対立仮説。"two.sided"(両側)か"one.sided"(片側)を指定。
library(exact2x2) ss2x2(p0 = 0.04, p1 = 0.08, n1.over.n0 = 1, sig.level = 0.05, power = 0.8, alternative = "two.sided")
Power for Fisher's Exact Test power = 0.8007346 n0 = 586 n1 = 586 p0 = 0.04 p1 = 0.08 sig.level = 0.05 alternative = two.sided nullOddsRatio = 1 NOTE: errbound= 1e-06
1群あたり586例、両群で1172例必要という結果になった。 ちなみに、標準正規分布をもとにした計算方法を使うと、1群あたり538〜542例、両群1076〜1084例という結果だったので、それよりは少し多めに必要。
おわりに
- いつでも正確検定でよい、という訳でもないという話は今度勉強したいと思います。
- 我が家の猫たちは、譲渡会のときは我慢して抱っこされてたんでしょうか。最近は抱っこの嫌がり方が半端なくなってきました。
参考資料
- すごい!サンプルサイズ計算の本なのにあまり眠くならない!手計算はこの本を参考にしました。
*1:interventionのIを使うと1と区別しにくいのでtrial