获得大相关矩阵或对的理想概述有什么好的策略?

时间:2011-09-29 12:20:34

标签: r

通常,某些data.frame包含20多个变量,您希望获得第一个概述(相关结构)。即使在一个30英寸的屏幕上,你也会迅速跑出太空而且仍然很难掌握这个信息。是否有任何既定的策略来突出重要的事情?我知道这个问题有点笼统,但我一遍又一遍地想,从来没有过治愈它的灵丹妙药。是的,我听说summary

5 个答案:

答案 0 :(得分:16)

我只需要在这里发布我自己的包裹:)

您可以使用qgraph将关联矩阵可视化为网络。这将把变量绘制为节点,将相关性绘制为连接节点的边。绿色边缘表示正相关,红色边缘表示负相关。边缘越宽越饱和,绝对相关性越强。

例如(这是帮助页面中的第一个示例),以下代码将绘制240变量数据集的相关矩阵。

library("qgraph")
data(big5)
data(big5groups)
qgraph(cor(big5),minimum=0.25,cut=0.4,vsize=2,groups=big5groups,legend=TRUE,borders=FALSE)
title("Big 5 correlations",line=-2,cex.main=2)

enter image description here

您还可以将强关联节点聚类在一起(使用Fruchterman-Reingold),这可以创建相关矩阵结构实际上看起来非常清晰的图像:

enter image description here

还有更多。有关更多示例,请查看我的网站:

http://sachaepskamp.com/?page_id=73

答案 1 :(得分:11)

为此,我使用了heatmap()(或者更确切地说,是基础image()函数)。我不再使用代码,而且我记得我不得不使用色彩图来获得对[-1,1]范围有意义的东西。

这是一个简单的例子:

R> set.seed(42)
R> X <- matrix(rnorm(100*20), nrow=100)
R> XC <- cor(X)
R> image(XC)        # color range could do with improvements here

correlation as image() plot

你通过消隐一个下三角或上三角并将文字放在那里来进一步欺骗。 PerformanceAnalytics包具有一个函数chart.Correlation(),它可以执行该操作(来自原始数据矩阵),但速度要慢得多,并且不会根据原始问题扩展到大型矩阵。我相信还有其他人......

答案 2 :(得分:9)

使用pairs,您可以快速生成一些散点图矩阵。如果存在太多变量,您可以使用Rattle的工具:

enter image description here 其他示例:http://rattle.togaware.com/rattle-screenshots.html

事实上,拨浪鼓本身并没有完成大部分的分析(正如dwin正确指出的那样),但是它提供了(imho)简单的工具来快速运行pca,相关树,上面的相关矩阵,而无需操纵你的数据集确保数据集中只有数字变量,...

答案 3 :(得分:9)

如何在相关矩阵上进行PCA? 然后变量之间的角度显示它们的相关性。

library(HSAUR)
heptathlon
round(cor(heptathlon[,-8]),2)   # correlations [without score]

require(vegan)
PCA <-  rda(heptathlon[,-8], scale=TRUE)   # run a PCA
biplot(PCA, display = "species")   # correlation biplot
#  The angles between descriptors in the biplot reflect their correlations

enter image description here

答案 4 :(得分:3)

通常,矩阵的列结构可以以随机顺序呈现。在那种情况下,我希望做一些重新排序。为了可视化和处理稀疏矩阵,我经常进行某种重新排序,例如Reverse Cuthill-McKee或其他形式的带宽重新排序,这可以应用于其他上下文以使可视化更容易。

对于相关矩阵,您可以压缩低幅度相关性(例如在(-eps,+ eps)内)以创建稀疏性,然后重新排序以检查结构。

如果您能找到相关对象的块,那么有什么好处。这种重新排序加上热图(使用一种颜色梯度进行负相关,另一种进行正相关)可能非常有用。