欠落しているエントリとの相関行列を表示するにはどうすればよいですか?


10

変数間の関係を簡単に調べるために、これまでに収集した記事の相関関係のグラフィック表現を取得したいと思います。以前は(乱雑な)グラフを描いていましたが、データが多すぎます。

基本的に、私はテーブルを持っています:

  • [0]:変数1の名前
  • [1]:変数2の名前
  • [2]:相関値

「全体的な」行列は不完全です(たとえば、V1 * V2、V2 * V3の相関関係がありますが、V1 * V3の相関関係はありません)。

これをグラフィカルに表現する方法はありますか?

回答:


12

@GaBorgulyaの応答に基づいて、変動またはレベルプロット(別名ヒートマップ表示)を試すことをお勧めします。

たとえば、ggplot2を使用します

library(ggplot2, quietly=TRUE)
k <- 100
rvals <- sample(seq(-1,1,by=.001), k, replace=TRUE)
rvals[sample(1:k, 10)] <- NA
cc <- matrix(rvals, nr=10)
ggfluctuation(as.table(cc)) + opts(legend.position="none") + 
  labs(x="", y="")

(ここでは、欠落しているエントリはプレーングレーで表示されますが、デフォルトの配色は変更でき、凡例に「NA」を入れることもできます。)

ここに画像の説明を入力してください

または

ggfluctuation(as.table(cc), type="color") + labs(x="", y="") +
  scale_fill_gradient(low = "red",  high = "blue")

(ここでは、欠損値は単に表示されません。ただし、geom_text()空のセルに「NA」などを追加して表示できます。)

ここに画像の説明を入力してください


2
+1、ggfluctuation以前に見たことがない!:この投稿は、デートのこのタイプを可視化するための他の有用なコードがあるstackoverflow.com/questions/5453336/...
チェイス

@チェイス(+1)Thx。ところで、負の相関値の配色に問題があったようです。
chl

hclust(…)$order)[ stat.ethz.ch/R-manual/R-devel/library/stats/html/hclust.html]で行と列を並べ替えると、多くの場合、視覚化の概要がわかりやすくなります。
GaBorgulya 2011

@GaBorgulya良い点。これは、探索的データ分析行っており、変数に特定の順序がない場合に使用します(空間データまたは時間データ、またはそのまま表示する構造化データの場合と同様)。そのためにmixOmics::cim機能はとても良いです。関連する問題はここで議論されました、stats.stackexchange.com/questions/8370/…
chl

5

あなたのデータは

  name1 name2 correlation
1    V1    V2         0.2
2    V2    V3         0.4

次のRコードを使用して、長いテーブルを広いテーブルに再配置できます

d = structure(list(name1 = c("V1", "V2"), name2 = c("V2", "V3"), 
    correlation = c(0.2, 0.4)), .Names = c("name1", "name2", 
    "correlation"), row.names = 1:2, class = "data.frame")
k = d[, c(2, 1, 3)]
names(k) = names(d)
e = rbind(d, k)
x = with(e, reshape(e[order(name2),], v.names="correlation", 
  idvar="name1", timevar="name2", direction="wide"))
x[order(x$name1),]

あなたが得る

  name1 correlation.V1 correlation.V2 correlation.V3
1    V1             NA            0.2             NA
3    V2            0.2             NA            0.4
4    V3             NA            0.4             NA

これで、相関行列(少なくとも欠損値に対処できるもの)を視覚化する手法を使用できます。


2
reshapeパッケージには、同様に役立ちます。あなたが持ったらe、次のようなものを検討してくださいlibrary(reshape) cast(melt(e), name1 ~ name2)
Chase

3

corrplotパッケージには、相関行列を可視化するための便利な機能です。入力オブジェクトとして相関行列を受け入れ、行列自体を表示するためのいくつかのオプションがあります。優れた機能は、階層クラスタリングまたはPCAメソッドを使用して変数を並べ替えることができることです。

視覚化の例については、このスレッドで受け入れられている回答を参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.