Rで相関テーブル

Rで無相関検定を行った相関テーブル

Rで相関テーブルを作る場合には,corrplotパッケージが便利です。corrplotパッケージでは,相関の値を○や□の大きさで視覚的に表現したり,色(負の相関:青〜正の相関:赤)で表現したりすることができます。多数の相関関係を視覚的に把握するには便利ですが,やはり相関の値自体も表示したいし,なによりも無相関検定の結果も併せて見たいわけです。しかし,corrplotパッケージでは相関の値(r)と無相関検定結果(p値)を同時に出しにくいのが難点でした。

そこで,corrplotで(1)無相関検定の結果を表示しつつ,(2)色による相関の方向性を表現し,(3)相関の値を表示することを目指します。工夫としては,有意ではない相関には黒い×がデフォルトではつくのですが,そうすると値が見にくいので薄いグレーの×に変更している点です。

必要なパッケージは以下です。インストールした上で実行してください。

  • Hmisc
  • corrplot
#必要なパッケージを読み込む
library(Hmisc)
library(corrplot)

#データ読み込み(mtcarsを使用)
dat <- mtcars

#rcorrで相関分析(matrixで読み込む必要がある)
corrTable <- rcorr(as.matrix(dat))
#相関の値を格納
r_mat <- corrTable$r
#p-valueを格納
p_mat <- corrTable$P

#相関テーブルの色を指定
col <- colorRampPalette(c("#4477AA", "#77AADD", "#FFFFFF", "#EE9988", "#BB4444"))
#相関テーブルを作成(有意水準はsig.levelで設定)
corrplot (r_mat, method = "color", col = col(200), diag = FALSE, order = "alphabet", addCoef.col = "black", p.mat = p_mat, sig.level = 0.05, pch.col = "gray")

こんな感じの相関テーブルができます。この相関テーブルは有意水準5%にしてあるので,有意ではない相関(p > .05の相関)には薄いグレーの×がついています。ただし,相関は一種の効果量なので有意かどうかだけで判断しないように注意する必要があります。

f:id:cognition:20181025125054p:plain

参考元:Correlation tests, correlation matrix, and corresponding visualization methods in R