ケンドールの一致度係数 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