目的 単相関係数,偏相関係数,重相関係数を計算する 使用法 my.cor(x) 引数 x データ行列(行がケース,列が変数) ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/my_cor.R", encoding="euc-jp") # 単相関係数,偏相関係数,重相関係数を計算する my.cor <- function(x) # データ行列 { x <- subset(x, complete.cases(x)) # 欠損値を持つケースを除く r <- cor(x) # 相関係数行列 i <- solve(r) # 逆行列 d <- diag(i) # 対角要素 p <- -i/sqrt(outer(d, d)) # 偏相関係数行列 r[lower.tri(r)] <- p[lower.tri(p)] # 単相関係数行列の下三角行列を偏相関係数行列にする diag(r) <- sqrt(1-1/d) # 対角要素を重相関係数に置き換える var.names <- colnames(x) rownames(r) <- colnames(r) <- if (is.null(var.names)) paste("Var", 1:ncol(x)) else var.names return(r) } 使用例 x <- matrix(c( # 5ケース,4変数のデータ行列例(ファイルから読んでも良い) 1, 5, 6, 4, 2, 14, 5, 3, 3, 3, 4, 2, 4, 2, 6, 6, 3, 4, 3, 5 ), ncol=4, byrow=TRUE) my.cor(x) 出力結果例 上三角行列: 単相関係数 下三角行列: 偏相関係数 対角要素: 重相関係数 Var 1 Var 2 Var 3 Var 4 Var 1 0.6184644 -0.49058484 -0.23543548 0.4160251 Var 2 -0.3553252 0.53356576 0.06355615 -0.3930731 Var 3 -0.3440509 0.03407991 0.44334712 0.2425356 Var 4 0.3732220 -0.23326740 0.38235645 0.5780364 解説ページ1,解説ページ2