R の相関行列 correlation matrix

UB3/informatics/r/cor_test

このページの最終更新日: 2024/04/05

  1. 概要: 相関行列 correlation matrix とは
  2. corrplot 関数による相関行列の視覚化

広告

概要: 行列 correlation matrix とは

相関行列 correlation matrix とは、複数の変数間における相関係数を行列にしたもののことをいう。相関係数については、ピアソンの相関 のページなどを参照のこと。

R の 組み込みデータセット swiss を使って説明する。

swiss は、スイスの 47 の地区における出生率と、さまざまな社会的要因のデータである。 Rの組み込みデータセット swiss

数字をざっと見ると、Examination と Education に正の相関がありそうである。変数を指定して cor() 関数を使うと、次のように相関係数を算出してくれる。

cor(swiss$Education, swiss$Examination)
[1] 0.6984153

cor() をデータ全体に対して使うと、相関行列が作られる。

mat <-cor(swiss)

swissの相関行列

Fertility vs. Fertility の相関係数はもちろん 1 であり、これは他の変数についても同様なので、対角線に 1 が並ぶ。

corrplot 関数による相関行列の視覚化

cor() 関数で計算した相関行列は、そのまま ヒートマップ にしてもよいが・・・

swiss相関行列のヒートマップ

corrplot() 関数 を使う方が何かと便利なことが多い。使ったことのあるオプションは以下。R documentation も参照のこと。

method

図の形を決めるメインのオプション。method = "number" のように指定する。number, color, circle (デフォルト), shade, square, ellipse などを指定できる。

is.corr

Correlation matrix では、対角線に 1 が並ぶ。これがパーセンテージのデータだったりして、対角線に 100 が並んでいるようなデータだと、corrplot() 関数は The matrix is not in [-1, 1]! というエラーを返す。

これを防ぐためには、is.corr = FALSE する。これで、たとえば correlation matrix 的な感じのデータを Excel から読み込んで図を作ることが可能になる。

diag

FALSE にすると、1 の部分が表示されなくなる。

type

type = "lower" で、下半分を表示。

ggcorrplot も何度か試したことがある。heatmaply を使うと、デンドログラムをつけられる。


広告

References

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。