首页 文章

热图或相关矩阵的图[重复]

提问于
浏览
7

这个问题在这里已有答案:

我试图用相关矩阵制作一个图,并用三种颜色来表示使用库晶格的相关系数 .

library(lattice)

levelplot(cor)

我得到以下情节:

Plot of correlation matrix

该图仅适用于我拥有的数据的子集 . 当我使用整个数据集(400X400)时,它变得不清楚,并且颜色没有正确显示并显示为点 . 对于大型矩阵,是否可以以平铺形式获得相同的内容?

我尝试使用pheatmap函数,但我不希望我的值被聚集,只是想要以tile形式清楚地表示高值和低值 .

2 回答

  • 14

    @Lucas在这里提供了很好的建议,因为corrplot对于可视化相关矩阵非常有用 . 但是,它没有解决绘制大相关矩阵的原始问题 . 实际上,当尝试可视化这么大的相关矩阵时,corrplot也会失败 . 对于简单的解决方案,您可能需要考虑减少变量的数量 . 也就是说,我建议您查看您知道对您的问题很重要的变量子集之间的相关性 . 试图理解那么多变量的相关结构将是一项艰巨的任务(即使你可以想象它)!

  • 0

    如果要进行相关图,请使用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")
    

    enter image description here
    上面的代码只为具有> abs(0.5)相关性的相关性添加颜色,但您可以轻松更改它 . 最后,您可以通过多种方式配置绘图的外观(更改颜色渐变,显示相关性,显示完整与仅半矩阵等) . order参数特别有用,因为它允许您根据PCA在相关矩阵中对变量进行排序,因此它们是根据相关性的相似性进行排序的 .

    例如,对于正方形(类似于原始图) - 只需将方法更改为正方形:
    enter image description here

    编辑:@Carson . 您仍然可以将此方法用于合理的大型相关矩阵:例如下面的100个变量矩阵 . 除此之外,我没有看到在没有一些子集的情况下使用如此多的变量对相关矩阵进行图形表示有什么用,因为这很难解释 .
    enter image description here

相关问题