リジット分析 Last modified: Aug 20, 2009
目的
リジット分析を行う。
参考文献
1) 富永祐民:治療効果判定のための実用統計学--生命表法の解説--,蟹書房
2) 石村貞夫ら:よくわかる医学・歯学・薬学のための統計解析,東京図書
使用法
Ridit(na, nb, combine=FALSE)
引数
na 第一群の度数。combine=FALSE のときは,基準となる群
nb 第二群の度数。combine=FALSE のときは,比較される群
combine 両群をプールして基準とする場合に TRUE とする。
省略時は FALSE が仮定される。
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/Ridit.R", encoding="euc-jp")
# リジット分析を行う
Ridit <- function( na, # 第一群の度数
nb, # 第二群の度数
combine=FALSE) # 両群をプールして基準にするとき TRUE
{
ridit <- function(na) # リジットを計算する関数
{
cna <- cumsum(na)
return((na/2+c(0, cna[-length(cna)]))/sum(na))
}
data.name <- paste(deparse(substitute(na)), "and", deparse(substitute(nb)))
if (combine == FALSE) { # 片方の群を基準にする場合
method <- "リジット分析(片方の群を基準にする場合)"
n2 <- sum(nb) # 比較される群 nb の総数
r <- sum(nb*ridit(na))/n2
Z <- abs(r-0.5)*sqrt(12*n2)
P <- pnorm(Z, lower.tail=FALSE)*2
names(Z) <- "Z-value"
names(r) <- "ridit"
return(structure(list(statistic=Z, p.value=P, estimate=r,
method=method, data.name=data.name), class="htest"))
}
else { # 群をプールして基準とする場合
method <- "リジット分析(群をプールして基準とする場合)"
r <- ridit(na+nb)
n1 <- sum(na)
ra <- sum(r*na)/n1
n2 <- sum(nb)
rb <- sum(r*nb)/n2
Z <- abs(ra-rb)/sqrt((n1+n2)/(12*n1*n2))
P <- pnorm(Z, lower.tail=FALSE)*2
names(Z) <- "Z-value"
return(structure(list(statistic=Z, p.value=P,
estimate=c("ridit-a"=ra, "ridit-b"=rb),
method=method, data.name=data.name), class="htest"))
}
}
使用例
片方の群を基準にする場合
> na <- c(4, 11, 14, 3)
> nb <- c(6, 13, 9, 1)
> Ridit(na, nb, FALSE)
リジット分析(片方の群を基準にする場合)
data: na and nb
Z-value = 2.0102, p-value = 0.04441
sample estimates:
ridit
0.3922414
群をプールして基準とする場合
> k1 <- c(10, 43, 122, 66)
> k2 <- c(12, 25, 53, 15)
> Ridit(k1, k2, combine = TRUE)
リジット分析(群をプールして基準とする場合)
data: k1 and k2
Z-value = 3.0942, p-value = 0.001974
sample estimates:
ridit-a ridit-b
0.5316960 0.4272502
直前のページへ戻る
E-mail to Shigenobu AOKI