井出草平の研究ノート

Rで相関プロットを描く

相関分析を視覚的に認識するために、相関プロットは有効である。特に、二次分析の際などに威力を発揮するかもしれない。二次分析は仮説があってそれを検証すために調査を作れるわけではないので、どの部分を分析するか、総当たりで検証することもあるからだ。やってみたらこうなった的で良くないプロセスだが、二次分析というビハインドがある場合には致し方ないこともあるだろう。

相関プロットを描画するにはcorrplotパッケージを利用する。

サンプルデータとしてMASSパッケージに含まれるBostonデータを使用する。比較的連続変数が多いデータである。

library(MASS)
data(Boston)
num <- c(1:3,5:8,10:14) # 連続変数は1~3、5~8、10~14列目。列番号をnumに格納。
d1 <- Boston[num] #連続変数だけのデータをd1に格納。

以下で相関プロットを作っていく。

library("corrplot")
res <- cor(d1, method = "pearson")
corrplot(corr = res, type="upper")

f:id:iDES:20190913052408p:plain

相関の強さが色の濃さと円の大きさで確認できる。

相関係数を重ねて描画することもできる。 オプションでaddCoef.colを付け加える。値は文字の色である。blackの方がわかりやすいかもしれない。

corrplot(corr = res, type="upper", addCoef.col="gray" )

f:id:iDES:20190913052420p:plain

これだと文字が重なってよくわからない。そういう場合には、画像サイズを先に指定しておくと解決できる。

png(height=800, width=800, pointsize=15, file="corrplot02.png")
corrplot(corr = res, type="upper", addCoef.col="black" )

heightは画像の高さ、widthは幅、pointsizeは文字の大きさで、file=はファイル名である。ファイルは作業ディレクトリに出力される。文字の重なりは、画像の大きさと文字の大きさを変更すると調整できる。

f:id:iDES:20190913052436p:plain

相関の強弱であればプラスかマイナスかはあまりどうでもいいという考え方もあるので、その場合には絶対値をつけてタイルで表示させるとオシャレ感が増す。

corrplot(corr = abs(res), method="color", tl.pos="n", cl.lim = c(0,1))

f:id:iDES:20190913052513p:plain

モザイクタイルのようなものが出来上がる。男子トイレに貼られることの多いタイル建材だ。

色を変えたいときには、以下のようにする。

corrplot(corr = abs(res), method="color", tl.pos="n",
          cl.lim = c(0,1), col=colorRampPalette(c("black","white","black"))(200))

f:id:iDES:20190913052553p:plain

白と黒だと印刷するときに便利かもしれない。 200と最後についているのは白から黒までの段階を何段階にするか、という指定である。

corrplot(corr = abs(res), method="color", addCoef.col="black",
              tl.pos="n", cl.lim = c(0,1))

相関係数の値も付与できる。

f:id:iDES:20190913052606p:plain