ネキシウムというPPIがGERDの症状を改善するという話を聞いた。(Jpn. J. Med. Pharm. Sci. 68(3), 437-449, 2012.)
こんな感じの図が出た。
GERDの人は1週間のうち4日は症状に悩まされているけれども、PPIを飲むと1日以下になるとか。
サンプルサイズが104人もいて、中央値についてWilcoxonの符号付順位検定でp値が0.001より小さいんだって。
というか、3の差を検出するのに104人も必要?
というわけでシミュレーションしたら、6人もいれば検出力は80%を超える。
無駄な努力、ご苦労様(ヒソカ風
mat <- cbind(c(4, 1, 0), c(4, 0, 0)) colnames(mat) <- c("胸やけ", "呑酸") col <- c("purple", "violet", grey(0.8)) par(cex.lab=1.6, cex.axis=1.6, mar=c(3, 5, 4, 2)) b <- barplot(mat, beside=TRUE, col=col, ylim=c(0, 5), ylab="過去1週間の症状ありの日数", main="ネキシウム20mg投与後の症状の頻度") text(c(b[-1,]), c(mat[-1,])+0.3, "***", cex=3) legend("topright", legend=paste(c(0, 4, 8), "週"), col=col, pch=15, cex=1.5, bty="n") legend("topleft", legend="*** : p < 0.001 vs 投与前", bty="n", cex=1.2)
# サンプルサイズが104のときのp値 n <- 104 r1 <- rpois(n, mat[1, 1]) r2 <- rpois(n, mat[2, 1]) wilcox.test(r1, r2)$p.value # 検出力をシミュレーションする。 power <- seq(n) niter <- 100 for(ni in 1:n){ tmp <- rep(0, niter) for(i in seq(niter)){ r1 <- rpois(ni, mat[1, 1]) r2 <- rpois(ni, mat[2, 1]) tmp[i] <- wilcox.test(r1, r2)$p.value } power[ni] <- mean(tmp < 0.05) } plot(power, xlab="sample size", ylab="power")