r-statistics-fanの日記

統計好きの現場の臨床医の覚書のようなもの

比率の差の信頼区間の手法色々

単なる覚書

####比率の差の信頼区間 多分Miettinen and Nurminen
library(PropCIs)
diffscoreci(10, 100, 20, 150, 0.95)

###正確な比率の差の信頼区間 時間がかかるので注意
#library(ExactCIdiff)
#BinomCI(100,150,10,20,0.95,CItype = "Two.sided", precision = 0.01)

##比率の差の信頼区間 Altman et al. (2000)
library(epiR)
grp1 <- matrix(cbind(10, 90), ncol = 2)
grp2 <- matrix(cbind(20, 130), ncol = 2)
dat <- as.matrix(cbind(grp1, grp2))
epi.conf(dat, ctype = "prop.unpaired")

##Miettinen and Nurminen
library(gsDesign)
ciBinomial(10, 20, 100, 150, alpha=.05, adj = 1, scale="Difference")


####Fisher対応比率の差の信頼区間:松山眞一

n <- 119 #第一群のN

m <- 115 #第二群のN
sn <- 118 #1群の成功数
sm <- 111 #2群の成功数
p <- sn/n #第一群の有効率
q <- sm/m #第二群の有効率
k <- sn + sm #有効例全体のN
res <- fisher.test(matrix(c(sn, n -sn, sm, m - sm), byrow = TRUE, nrow = 2), conf.level = 0.95)
g1 <- res$conf.int[1] #オッズ比の信頼区間下限
g2 <- res$conf.int[2] #オッズ比の信頼区間上限
pg1 <- (-k + m + k * g1 + n * g1 - sqrt(((k - m - k * g1 - n * g1)^2) - 4 * k * n * g1 * (g1 - 1)))/(2 * n * (g1 - 1))
qg1 <- (k - n * pg1) / m
pg2 <- (-k + m + k * g2 + n * g2 - sqrt(((k - m - k * g2 - n * g2)^2) - 4 * k * n * g2 * (g2 - 1)))/(2 * n * (g2 - 1))
qg2 <- (k - n * pg2) / m
down <- pg1 - qg1
upper <- pg2 - qg2
c(down, upper) #比率の差の信頼区間
res