κ統計量 Last modified: Aug 19, 2009
目的
κ統計量を求める。
vcd パッケージに,Kappa 関数が用意されている。
使用法
kappa.stat(x, conf.level=0.95)
kappa.stat(x, w, conf.level=0.95)
引数
x 評定結果の二次元表を行列として与える。正方行列でなくてはならない。
w 重みを表す行列。対角成分はどんな値でも良い(0 を入れておくとよい)
重み付きのκ統計量を求めないときには省略すればよい。
conf.level 信頼区間を求めるときの信頼率(デフォルトでは 95% 信頼区間を求める)
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/kappa_stat.R", encoding="euc-jp")
# カッパ統計量
kappa.stat <- function( o, # 評定結果の二次元表
w=FALSE, # 重み行列(対角成分は何でも良い)
conf.level=0.95) # 信頼率
{
data.name <- deparse(substitute(o))
method <- "κ統計量"
n <- sum(o) # サンプルサイズ
e <- outer(rowSums(o), colSums(o))/n # 期待値
if (is.matrix(w) == FALSE) { # 重み付けしないときは,
po <- sum(diag(o))/n
qo <- 1-po
pe <- sum(diag(e))/n
qe <- 1-pe
kappa <- 1-qo/qe
sk <- sqrt(po*qo/(n*qe^2)) # κの信頼区間を計算するときに使う標準誤差
sk0 <- sqrt(pe/(n*qe)) # H0:κ = 0 の検定に使うκの標準誤差
}
else { # 重み付けするκを求めるときは,
method <- paste(method, "(重み付け)", sep="")
qo <- sum(w*o)/n
qo2 <- sum(w*w*o)/n
qe <- sum(w*e)/n
qe2 <- sum(w*w*e)/n
kappa <- 1-qo/qe
sk <- sqrt((qo2-qo^2)/n/qe^2) # κの信頼区間を計算するときに使う標準誤差
sk0 <- sqrt((qe2-qe^2)/n/qe^2) # H0:κ = 0 の検定に使うκの標準誤差
}
stopifnot(kappa >= 0)
z <- kappa/sk0 # H0:κ = 0 の検定
P <- pnorm(z, lower.tail=FALSE)*2 # P 値
names(kappa) <- "kappa"
names(z) <- "Z"
cint <- kappa+c(-sk, sk)*qnorm(0.5+conf.level/2)
attr(cint, "conf.level") <- conf.level
return(structure(list(estimate=kappa, statistic=z, p.value=P, # 結果は htest クラスのオブジェクト
method=method, data.name=data.name, conf.int=cint, "sigma-kappa"=sk,
"sigma-kappa-0"=sk0), class="htest"))
}
使用例
x <- matrix(c( # ファイルから読んでも良い
12, 6, 1,
3, 19, 4,
2, 5, 34
), byrow=TRUE, ncol=3)
kappa.stat(x)
w <- matrix(c( # 重み行列の対角部分はどんな値でも良い
0, 1, 3,
1, 0, 1,
3, 1, 0
), ncol=3, byrow=TRUE)
kappa.stat(x, w)
出力結果例
> kappa.stat(x) # 重みを付けないκ
κ統計量
data: x
Z = 7.5202, p-value = 5.467e-14 # 検定結果
95 percent confidence interval: # 信頼区間
0.4721927 0.7583143
sample estimates: # κ統計量
kappa
0.6152535
> w <- matrix(c(
+ 0, 1, 3,
+ 1, 0, 1,
+ 3, 1, 0
+ ), byrow=TRUE, ncol=3)
> kappa.stat(x, w) # 重みを付けたκ
κ統計量(重み付け)
data: x
Z = 6.1563, p-value = 7.447e-10 # 検定結果
95 percent confidence interval: # 信頼区間
0.5586969 0.8278289
sample estimates: # κ統計量
kappa
0.6932629
# 作りつけの関数 Kappa による推定
> library(vcd) # vcd ライブラリーを使うために必須
> Kappa(x)
value ASE
Unweighted 0.6152535 0.07299153
Weighted 0.6634051 0.14035169
解説ページ
直前のページへ戻る
E-mail to Shigenobu AOKI