リジット分析     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

Made with Macintosh