相関比 Last modified: Apr 10, 2008
目的
一方の変数が質的データで,もう一方の変数が量的データのときに,二変数間の関連を示す指標として相関比と決定係数を求める。
使用法
correlation.ratio(x, group)
引数
x データベクトル
group 観察値がどの群に属するかを表す変数
ソース
インストールは,以下の 1 行をコピーし,R コンソールにペーストする
source("http://aoki2.si.gunma-u.ac.jp/R/src/correlation-ratio.R", encoding="euc-jp")
# 相関比と決定係数を求める
correlation.ratio <- function( x, # 変数ベクトル
group) # 群を表す変数ベクトル
{
ok <- complete.cases(x, group) # 欠損値を持つケースを除く
x <- x[ok]
group <- factor(group[ok])
n.i <- tapply(x, group, length) # 各群のデータの個数
n <- sum(n.i) # 全データ数
v.i <- tapply(x, group, var) # 各群の不偏分散
R.sq <- 1-sum((n.i-1)*v.i)/var(x)/(n-1) # 決定係数
c.r <- sqrt(R.sq) # 相関比
return(c("correlation ratio"=c.r, "coefficient of determination(R^2)"=R.sq))
}
使用例
# 第1列目が群を表す(1から始まり連続する整数値)。第2列目は観測値。
[,1] [,2]
[1,] 1 3
[2,] 1 3
[3,] 1 4
[4,] 1 2
[5,] 2 5
[6,] 2 2
[7,] 2 3
[8,] 2 4
[9,] 3 8
[10,] 3 8
[11,] 3 5
[12,] 3 6
dat <- matrix(c(rep(1:3, each=4), 3, 3, 4, 2, 5, 2, 3, 4, 8, 8, 5, 6), nc=2)
correlation.ratio(dat[,2], dat[,1])
出力結果例
> dat <- matrix(c(rep(1:3, each=4), 3, 3, 4, 2, 5, 2, 3, 4, 8, 8, 5, 6), nc=2)
> correlation.ratio(dat[,2], dat[,1])
# 相関比と決定係数
correlation ratio coefficient of determination(R^2)
0.8407896 0.7069272
直前のページへ戻る
E-mail to Shigenobu AOKI