非劣性試験のサンプルサイズ計算
生存時間データの場合
- 非劣性試験のサンプルサイズ計算 生存時間データの場合 例 1
- 非劣性試験のサンプルサイズ計算 生存時間データの場合 例 2
- 非劣性試験のサンプルサイズ計算 生存時間データの場合 例 3 追跡期間を延長する
- 非劣性試験のサンプルサイズ計算 生存時間データの場合 エクセルで
- まとめ
- 参考文献
- 非劣性試験のサンプルサイズ計算 生存時間データの場合 EZRで【動画】
- おすすめ書籍
非劣性試験のサンプルサイズ計算 生存時間データの場合 例 1
tが、観察期間。
S1とS0が、それぞれ治療群とコントロール群の生存率。
dFが、Freedmanの方法による各群必要な死亡症例数。
dSが、Schoenfeldの方法による各群必要な死亡症例数。
Delta.S0が、非劣性マージン。
R スクリプトは以下のようになる。
sample.size.cox.noninf <- function(t,S1,S0,Delta.S0, alternative=c("one.sided","two.sided"),power=.8, sig.level=.05){ alternative <- match.arg(alternative) tside <- switch(alternative, one.sided=1, two.sided=2) beta <- log(log(S1)/log(S0)) H1 <- -1*log(S1)/t H0 <- -1*log(S0)/t HR <- H1/H0 H0.prime <- -1*log(S0-Delta.S0)/t HR.prime <- H1/H0.prime Za <- qnorm(sig.level/tside, lower.tail=FALSE) Zb <- qnorm(power) dF <- (Za+Zb)^2*(HR.prime+1)^2/(2*(HR.prime-1)^2) nF <- dF/(((1-S1)+(1-S0))/2) dS <- 2*(Za+Zb)^2/((log(HR.prime))^2) nS <- dS/(((1-S1)+(1-S0))/2) NOTE <- "n is number in *each* group" METHOD <- "Sample Size of Cox Model (noninferiority)" structure( list( "Death (Freedman)" = dF, "Number (Freedman)" = nF, "Death (Schoenfeld)" = dS, "Number(Schoenfeld)" = nS, "Survival trt(S1)" = S1, "Survival ctl(S0)" = S0, "Noninf. margin"= Delta.S0, "Hazard trt(H1)" = H1, "Hazard ctl(H0)" = H0, "H0 w/ margin" = H0.prime, "Hazard ratio(HR)" = HR, "HR w/ margin" = HR.prime, "Follow up(y)" = t, sig.level = sig.level, power = power, alternative = alternative, note = NOTE, method = METHOD), class = "power.htest") }
非劣性マージンの考え方はこちらを参照。
観察期間5年、治療群の生存率が80%、コントロール群の生存率が65%、非劣性マージンは相対10%で、0.065=6.5%として、両側検定とすると、
- Freedmanの方法では、一群84例必要、
- Schoenfeldの方法では、一群75例必要
と計算される。
> sample.size.cox.noninf(t=5, S1=0.8, S0=0.65, Delta.S0=0.065, alternative="two.sided") Sample Size of Cox Model (noninferiority) Death (Freedman) = 23.09411 Number (Freedman) = 83.97858 Death (Schoenfeld) = 20.42905 Number(Schoenfeld) = 74.28746 Survival trt(S1) = 0.8 Survival ctl(S0) = 0.65 Noninf. margin = 0.065 Hazard trt(H1) = 0.04462871 Hazard ctl(H0) = 0.08615658 H0 w/ margin = 0.1072287 Hazard ratio(HR) = 0.5179954 HR w/ margin = 0.4162012 Follow up(y) = 5 sig.level = 0.05 power = 0.8 alternative = two.sided NOTE: n is number in *each* group
Freedmanの方法はSchoenfeldの方法よりいつも大きめのサンプルサイズになる。
Schoenfeld式の結果は、サンプルサイズを過小評価しているという指摘がある。
安全確実に見積もるならFreedmanの方法、症例があまり集まりそうでない場合はSchoenfeldの方法という判断基準でよいと思う。
非劣性試験のサンプルサイズ計算 生存時間データの場合 例 2
試験デザインは試験薬と対照薬の2投与群の無作為比較試験。
追跡期間5年で、主要評価項目はOverall survival。
試験薬のOverall survivalの非劣性を証明するための必要サンプルサイズを算出したい。
想定される5年生存率は両群とも95%で、非劣性マージンは5%に設定、片側α=0.05、検出率=0.8を考えている。
実際に計算してみると、Freedman式では、520例必要と計算された。
Schoenfeld式では、478例必要と計算された。
> sample.size.cox.noninf(t=5, S1=0.95, S0=0.95, Delta.S0=0.05, alternative="one.sided") Sample Size of Cox Model (noninferiority) Death (Freedman) = 25.95087 Number (Freedman) = 519.0175 Death (Schoenfeld) = 23.86386 Number(Schoenfeld) = 477.2773 Survival trt(S1) = 0.95 Survival ctl(S0) = 0.95 Noninf. margin = 0.05 Hazard trt(H1) = 0.01025866 Hazard ctl(H0) = 0.01025866 H0 w/ margin = 0.0210721 Hazard ratio(HR) = 1 HR w/ margin = 0.486836 Follow up(y) = 5 sig.level = 0.05 power = 0.8 alternative = one.sided NOTE: n is number in *each* group
かなり膨大な症例数である。
こういう場合は、想定に無理があると考えたほうが良い。
非劣性試験のサンプルサイズ計算 生存時間データの場合 例 3 追跡期間を延長する
追跡期間を10年にするとどうなるか?
その他の条件は同じで、想定される5年生存率は両群とも95%で、非劣性マージンは5%に設定、片側α=0.05、検出率=0.8とする。
わかっている生存率が5年生存率なので、10年まで観察した時の生存率を指数関数を使って予測する。
## 5年生存率をRとする R <- 0.95 ## 1年死亡率を計算 (r <- 1-R^(1/5)) ## 10年生存率を計算 (1-r)^10
結果、10年生存率は0.9025(90.25%)と計算された。
> ## 5年生存率をRとする > R <- 0.95 > ## 1年死亡率を計算 > (r <- 1-R^(1/5)) [1] 0.01020622 > ## 10年生存率を計算 > (1-r)^10 [1] 0.9025
それでは、10年生存率 0.9025 を使って、サンプルサイズを計算してみる。
結果は、Freedman式で671例、Schoenfeld式で650例と計算された。
5年観察のときよりも、たくさんの人数が必要になった。
> sample.size.cox.noninf(t=10, S1=0.9025, S0=0.9025, Delta.S0=0.05, alternative="one.sided") Sample Size of Cox Model (noninferiority) Death (Freedman) = 65.40619 Number (Freedman) = 670.8327 Death (Schoenfeld) = 63.33536 Number(Schoenfeld) = 649.5934 Survival trt(S1) = 0.9025 Survival ctl(S0) = 0.9025 Noninf. margin = 0.05 Hazard trt(H1) = 0.01025866 Hazard ctl(H0) = 0.01025866 H0 w/ margin = 0.01595821 Hazard ratio(HR) = 1 HR w/ margin = 0.6428453 Follow up(y) = 10 sig.level = 0.05 power = 0.8 alternative = one.sided NOTE: n is number in *each* group
試験群と対照群の生存率に差がない場合、劣らないことを示すのは簡単だろうと思うかもしれないが、統計学的に非劣性を証明するにはかなり大変で、巨大な試験になる。
非劣性試験のサンプルサイズ計算 生存時間データの場合 エクセルで
エクセルで計算できるようにした。
よければ下記からどうぞ。
エクセルファイルの使い方解説動画。
よかったらこちらもどうぞ。
まとめ
非劣性試験のサンプルサイズ計算を生存時間データの場合を解説した。
参考になれば。
参考文献
浜田&藤井 生存時間解析における症例数設計
第22回 日本SASユーザー会総会および研究発表会 論文集
2003年7月31日~8月1日 東京
非劣性試験のサンプルサイズ計算 生存時間データの場合 EZRで【動画】
EZRでの計算の仕方解説動画。
よければどうぞ。
おすすめ書籍
EZR公式マニュアル
コメント