GERDに対してPPIを処方するけれども

MikuHatsune2014-10-27

ネキシウムという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")