統計ER

統計ソフトRの使い方を中心に、統計解析方法の解説をするブログ。ありそうでなかなか見つからないサンプルサイズ計算などニッチな方法について紹介しています。

割合の非劣性検定のサンプルサイズ計算はどうやる?

ブログランキングに参加しています。
まずはぽちぽちっとお願いします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
にほんブログ村 科学ブログ 数学へ

非劣性検定は劣っていないことを証明する検定。

割合の非劣性検定のサンプルサイズ計算はどうやるか?

割合の非劣性検定のサンプルサイズ計算(Dunnett-Gentの方法)

pAを、試験薬の有効率とする。

pBを、標準薬の有効率とする。

pB.barは、帰無仮説H0: pA=pB-DELTAの下で推定されたpB.starの漸近値。

DELTAは、臨床的に意味のある最小の差。

片側5%、検出率80%がデフォルト設定。

pAがpB-DELTAよりも大きいことを証明したいので、片側検定だ。

non.inferior.sample.size <- function(pA, pB, DELTA, power=.8, sig.level=.05, alternative="one.sided"){

alternative <- match.arg(alternative)
tside <- switch(alternative, one.sided = 1, two.sided = 2)

delta <- pA-pB
pB.bar <- pB+(delta+DELTA)/2
R <- sqrt((pB.bar-DELTA)*(1-pB.bar+DELTA)+pB.bar*(1-pB.bar))
S <- sqrt(pA*(1-pA)+pB*(1-pB))

Za <- qnorm(sig.level/tside, lower.tail=FALSE)
Zb <- qnorm(power)
n <- ((Za*R+Zb*S)/(delta+DELTA))^2

NOTE <- "n is number in *each* group"
METHOD <- "Non Inferiority Test Sample Size Calculation (Dunnett-Gent)"
structure(list(n = n, pA = pA, pB = pB, DELTA=DELTA, sig.level = sig.level,
power = power, alternative = alternative, note = NOTE,
method = METHOD), class = "power.htest")
}

試験薬の有効率が0.813、標準薬の有効率が0.741、 臨床的に有効な差が0.1、検出力90%で、 必要サンプルサイズは各群100例必要と計算される。

> non.inferior.sample.size(pA=0.813, pB=0.741, DELTA=.1, power=.9)

     Non Inferiority Test Sample Size Calculation (Dunnett-Gent) 

              n = 99.17305
             pA = 0.813
             pB = 0.741
          DELTA = 0.1
      sig.level = 0.05
          power = 0.9
    alternative = one.sided

NOTE: n is number in *each* group

割合の非劣性検定のサンプルサイズ計算(最尤推定量に基づく方法)

各代数は前節と同じ。

non.inferior.sample.size.likelihood <- function(pA, pB, DELTA, power=.8, sig.level=.05, alternative="one.sided"){

alternative <- match.arg(alternative)
tside <- switch(alternative, one.sided = 1, two.sided = 2)

delta <- pA-pB
a <- 2
b <- -2*pB-2-3*DELTA-delta
c <- DELTA^2+2*(1+pB)*DELTA+2*pB+delta
d <- -pB*DELTA*(1+DELTA)
v <- b^3/(27*a^3)-(b*c)/(6*a^2)+d/(2*a)
u <- sign(v)*sqrt(b^2/(9*a^2)-c/(3*a))
w <- (pi+acos(v/u^3))/3
pB.star <- 2*u*cos(w)-b/(3*a)

R <- sqrt((pB.star-DELTA)*(1-pB.star+DELTA)+pB.star*(1-pB.star))
S <- sqrt(pA*(1-pA)+pB*(1-pB))

Za <- qnorm(sig.level/tside, lower.tail=FALSE)
Zb <- qnorm(power)
n <- ((Za*R+Zb*S)/(delta+DELTA))^2

NOTE <- "n is number in *each* group"
METHOD <- "Non Inferiority Test Sample Size Calculation (Likelihood Method)"
structure(list(n = n, pA = pA, pB = pB, DELTA=DELTA, sig.level = sig.level,
power = power, alternative = alternative, note = NOTE,
method = METHOD), class = "power.htest")
}

前節より幾分必要サンプルサイズが大きくなり、 各群102例必要と計算される。

> non.inferior.sample.size.likelihood(pA=0.813, pB=0.741, DELTA=.1, power=.9)

     Non Inferiority Test Sample Size Calculation (Likelihood Method) 

              n = 101.4188
             pA = 0.813
             pB = 0.741
          DELTA = 0.1
      sig.level = 0.05
          power = 0.9
    alternative = one.sided

NOTE: n is number in *each* group

参考書籍

丹後俊郎著 無作為化比較試験 朝倉書店
5. 臨床的同等性・非劣性の評価
5.3 独立な母比率の差の検定 pp.100-105

エクセルでサンプルサイズ計算

よければ以下からどうぞ。

割合の非劣性検定 サンプルサイズ計算【エクセルでサンプルサイズ】 | HHA SHOP

割合の非劣性検定 サンプルサイズ計算 エクセルファイルの使い方【動画】(2021年1月3日追記)

youtu.be