ケンドールの一致度係数     Last modified: Aug 21, 2009

目的

ケンドールの一致度係数を求める

使用法

kendall.w(x)

引数

x	データ行列(行がケース,列が変数)

ソース

インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/kendall_w.R", encoding="euc-jp")

# ケンドールの一致度係数
kendall.w <- function(x)                             # データ行列
{
        method <- "ケンドールの一致度係数"
        data.name <- deparse(substitute(x))
        x <- subset(x, complete.cases(x))            # 欠損値を持つケースを除く      
        nv <- ncol(x)                                        # データ行列の列数(変数の個数)
        nc <- nrow(x)                                        # データ行列の行数(ケース数)
        o <- apply(x, 2, rank)                               # 各列に rank 関数を適用(列ごとに順位を付ける)
        t <- apply(o, 2, table)                              # 同順位を取る個数
        s1 <- rowSums(o)
        tie <- sapply(t, function(i) sum(i^3-i))     # 同順位の調整
        w <- 12*sum((s1-sum(s1)/nc)^2)/(nv^2*(nc^3-nc)       # ケンドールの W
                -nv*sum(tie))
        chi <- nv*(nc-1)*w                           # 検定統計量(カイ二乗分布に従う)
        p <- pchisq(chi, nc-1, lower.tail=FALSE)     # P 値  
        return(structure(list(statistic=c("Kendall W"=w, "chi sq."=chi),
                parameter=c(df=nc-1), p.value=p, method=method,
                data.name=data.name), class="htest"))
}


使用例

> x <- matrix(c(	# 6ケース,3変数のデータ行列例(ファイルから読んでも良い)
+ 	6, 6, 2,
+ 	2, 5, 4,
+ 	1, 5, 5,
+ 	4, 2, 3, 
+ 	6, 3, 2,
+ 	5, 4, 4
+ ), byrow=TRUE, ncol=3)

> kendall.w(x)

	ケンドールの一致度係数

data:  x 
Kendall W = 0.1518, chi sq. = 2.2772, df = 5, p-value = 0.8096


・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI

Made with Macintosh