目的 対応のあるデータの二つの相関係数の相等性の検定を行う。 大阪大学の狩野裕先生のページに説明がある。 また,この検定とは状況が違う,同じサンプルからの相関係数の差も参照のこと。 注:対応のない場合については標本相関係数の同等性の検定を参照 使用法 diff.r2(x) 引数 x データ行列(または,データフレーム) ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/diff_r2.R", encoding="euc-jp") # 対応のあるデータの二つの相関係数の相等性の検定 # http://koko15.hus.osaka-u.ac.jp/%7Ekano/lecture/faq/q1.html#excel diff.r2 <- function(x) { method <- "対応のあるデータの二つの相関係数の相等性の検定" data.name <- deparse(substitute(x)) x <- as.matrix(x) n <- nrow(x) r <- cor(x) z12 <- atanh(r[1,2]) z34 <- atanh(r[3,4]) a1 <- r[1,3]*r[2,4]+r[1,4]*r[2,3] a2 <- -r[3,4]*(r[1,3]*r[2,3]+r[1,4]*r[2,4]) a3 <- -r[1,2]*(r[1,3]*r[1,4]+r[2,3]*r[2,4]) a4 <- r[1,2]*r[3,4]*(r[1,3]^2+r[1,4]^2+r[2,3]^2+r[2,4]^2)/2 d <- (1-r[1,2]^2)*(1-r[3,4]^2) chi.sq <- (n-3)*(z12-z34)^2/(2-2*(a1+a2+a3+a4)/d) p <- pchisq(chi.sq, 1, lower.tail=FALSE) return(structure(list(statistic=c("chi sq."=chi.sq), parameter=c(df=1), p.value=p, method=method, data.name=data.name), class="htest")) } 使用例 # テストデータとして,狩野先生のページにある例題データを発生 > r <- tri.mat(c(1,0.439,1,0.288,0.354,1,0.329,0.320,0.595,1), 4) > d <- gendat(220, r) > cor(d) # 例題の通りの相関係数行列になっていることを確認 [,1] [,2] [,3] [,4] [1,] 1.000 0.439 0.288 0.329 [2,] 0.439 1.000 0.354 0.320 [3,] 0.288 0.354 1.000 0.595 [4,] 0.329 0.320 0.595 1.000 > diff.r2(d) 対応のあるデータの二つの相関係数の相等性の検定 data: d chi sq. = 5.5002, df = 1, p-value = 0.01901