独立変数が連続量のロジスティック回帰のサンプルサイズ計算の方法
目次
ロジスティック回帰のサンプルサイズ計算スクリプト 連続データの場合
p0を平均値レベルでの発生確率とする。
p1を平均値+1SD(標準偏差)レベルでの発生確率とする。
サンプルサイズ計算は以下のようなスクリプトになる。
計算結果のnは必要な対象者全員の数だ。
sample.size.logistic <- function(p0, p1,
sig.level=.05, power=.8,alternative=c("two.sided","one.sided")){
alternative <- match.arg(alternative)
tside <- switch(alternative, one.sided=1, two.sided=2)
odds0 <- p0/(1-p0)
odds1 <- p1/(1-p1)
theta <- odds1/odds0
lambda <- log(theta)
Za <- qnorm(sig.level/tside, lower.tail=FALSE)
Zb <- qnorm(power)
delta <- (1+(1+lambda^2)*(exp(5*lambda^2/4)))/(1+exp(-lambda^2/4))
n <- ((Za+Zb*exp(-lambda^2/4))^2*(1+2*p0*delta))/(p0*lambda^2)
NOTE <- "n is size of entire cohort"
METHOD <- "Sample size, logistic reg. with cont. var."
structure(list(n = n,
"Prob. in average level" = p0,
"Prob. in ave.+SD level" = p1,
sig.level = sig.level,
power = power,
alternative = alternative, note = NOTE,
method = METHOD), class = "power.htest")
}
ロジスティック回帰のサンプルサイズ計算 連続データの場合の例
例えば、平均値レベルで0.08+1SDで1.5倍になると予想して計算すると、コホート全体で569例必要と計算される。
> sample.size.logistic(p0=0.08, p1=0.08*1.5)
Sample size, logistic reg. with cont. var.
n = 568.7537
Prob. in average level = 0.08
Prob. in ave.+SD level = 0.12
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is size of entire cohort
例えば、平均値レベルで0.2で発生し、1単位上がるごとに1.1倍、1SDが5だとして、+1SDで、1.15 = 1.61 倍、発生すると想定すると、154例のコホートでよいという計算になる。
> sample.size.logistic(p0=0.2, p1=0.2*1.61)
Sample size, logistic reg. with cont. var.
n = 153.2653
Prob. in average level = 0.2
Prob. in ave.+SD level = 0.322
sig.level = 0.05
power = 0.8
alternative = two.sided
NOTE: n is size of entire cohort
まとめ
ロジスティック回帰のサンプルサイズ計算で、説明変数が連続データの場合を解説した。
参考になれば。
参考書籍
参考文献
Hsieh FY. Sample size tables for logistic regression. Stat Med 1989;8(7):795-802.
コメント