我试图用相关矩阵制作一个图,并用三种颜色来表示使用库晶格的相关系数。
library(lattice)
levelplot(cor)
我得到以下情节:
该图仅适用于我拥有的数据的子集。当我使用整个数据集(400X400)时,它变得不清楚,并且颜色没有正确显示并显示为点。对于大型矩阵,是否可以获得相同的平铺形式?
我尝试使用pheatmap函数,但我不希望我的值被聚类,只是希望以瓦片形式清楚地表示高值和低值。
答案 0 :(得分:14)
如果您想进行相关图,请使用corrplot库,因为它具有很大的灵活性,可以为相关创建类似热图的数据
library(corrplot)
#create data with some correlation structure
jnk=runif(1000)
jnk=(jnk*100)+c(1:500, 500:1)
jnk=matrix(jnk,nrow=100,ncol=10)
jnk=as.data.frame(jnk)
names(jnk)=c("var1", "var2","var3","var4","var5","var6","var7","var8","var9","var10")
#create correlation matrix
cor_jnk=cor(jnk, use="complete.obs")
#plot cor matrix
corrplot(cor_jnk, order="AOE", method="circle", tl.pos="lt", type="upper",
tl.col="black", tl.cex=0.6, tl.srt=45,
addCoef.col="black", addCoefasPercent = TRUE,
p.mat = 1-abs(cor_jnk), sig.level=0.50, insig = "blank")
上面的代码仅为具有>的相关性添加颜色。 abs(0.5)相关,但你可以很容易地改变它。最后,您可以通过多种方式配置绘图的外观(更改颜色渐变,显示相关性,显示完整与仅半矩阵等)。 order参数特别有用,因为它允许您根据PCA在相关矩阵中对变量进行排序,因此它们是根据相关性的相似性进行排序的。
例如对于正方形(类似于原始图) - 只需将方法更改为正方形:
编辑:@Carson。您仍然可以将此方法用于合理的大型相关矩阵:例如下面的100个变量矩阵。除此之外,我没有看到在没有一些子集的情况下使用如此多的变量对相关矩阵进行图形表示有什么用,因为这很难解释。答案 1 :(得分:0)
@Lucas在这里提供了很好的建议,因为corrplot对于可视化相关矩阵非常有用。但是,它没有解决绘制大相关矩阵的原始问题。实际上,当尝试可视化这么大的相关矩阵时,corrplot也会失败。对于简单的解决方案,您可能需要考虑减少变量的数量。也就是说,我建议您查看您知道对您的问题很重要的变量子集之间的相关性。试图理解那么多变量的相关结构将是一项艰巨的任务(即使你可以想象它)!