トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

多変量データの相関分析

「どんなデータを扱っているのか?」、「 多重共線性 はどうなっているのか?」、といった事のチェックとして、 全ての変数の組み合わせについて、相関分析が役に立ちます。

相関行列

たくさんの変数の組み合わせについて、とりあえず片っ端からチェックする方法として、 相関係数 を表にしてまとめる方法があります。 この表は相関行列と呼ばれます。

相関行列は、 多変量解析 のいろいろな手法の中間的な計算で、よく使われています。

グラフィカルモデリング

相関行列には、負の値がありますが、それは正にして、ある値よりも小さい場合は0とみなす事にすれば、相関関係をネットワークのグラフで表現できるようになります。 相関行列で数字の羅列を眺めるよりも、グラフにした方がわかりやすい事があります。

こういったアプローチは、「グラフィカルモデリング」と呼ばれます。 ちなみに、このページのグラフィカルモデリングは、辺が相関係数で、頂点が変数名です。 グラフィカルモデリングでは、辺(エッジ)と頂点(ノード)を何にするのかで、様々な事を表現できます。 ネットワークの書き方と描き方 が参考になります。

Rで、グラフィカルモデリング

Rの実施例です。 下記は、コピーペーストで、そのまま使えます。 この例では、Cドライブの「Rtest」というフォルダに、 「DataGM.csv」という名前でデータが入っている事を想定しています。

サンプルデータ の場合は、下のようなグラフができます。
グラフィカルラスー

library(igraph) #事前にパッケージ「igraph」をインストールしないと、エラーになる
setwd("C:/Rtest") # 作業用ディレクトリを変更
Data <- read.table("DataGM.csv", header=T, sep=",") # データを読み込み
DataM <- as.matrix(Data) # テーブルデータを行列にする
GM1 <- cor(DataM) # 相関係数行列を計算
GM1 # 相関係数行列を画面に表示
write.csv(GM1, file = "GM.csv") # 相関係数行列をファイルに出力
#
# ここからは、グラフの描画用のデータの作成
diag(GM1) <- 0 # 対角成分は0にする
GM2 <- abs(GM1) # 絶対値にする
GM2[GM2<0.1] <- 0 # 相関係数の絶対値が0.1未満の場合は0にする(非表示にするため)
GM3 <- GM2*10 # 一番大きな値が10になるように修正(パスの太さを指定するため)
GM4 <- graph.adjacency(GM3,weighted=T, mode = "undirected") # グラフ用のデータを作成
plot(GM4, edge.width=E(GM4)$weight) # グラフを作成

偏相関行列とグラフィカルラスー

擬似相関 を知っていると、 相関係数を使う相関行列の代わりに、 偏相関行列 を使いたくなります。

しかし、偏相関行列の計算には弱点があるので、実務向きではありません。 実務的には相関係数の方がロバストな解析になり、便利です。

グラフィカルラスー は、 スパースモデリング の考えを取り入れたグラフィカルモデリングの一種です。 グラフィカルラスーなら、 偏相関行列の分析でやりたいたいと思っていたことができます。



多対多の分析

手法の使い分け

量的なデータの非対称性


順路 次は グラフィカルラスー

Tweet