【问题标题】:r corrplot with clustering: default dissimilarity measure for correlation matrixr corrplot with clustering:相关矩阵的默认差异度量
【发布时间】:2018-02-04 09:06:26
【问题描述】:

我使用 R 包 corrplot 从我的数据中可视化相关矩阵。我使用嵌入式选项 hclust 对变量进行聚类。 命令的调用是这样的(加上标题、轴等的各种排列):

corrplot(Rbas,type="upper",order="hclust",method="ellipse")

但现在我使用其他包进行了一些分析和可视化,结果出现了关于结果兼容性的问题。特别是,我必须手动重复相关矩阵的聚类。但是从文档到corrplot 有一个模糊的点:在 corrplot 中使用了哪些差异度量来支持其合理的默认值?这是 1-|corr|、sqrt(1-corr^2) 还是其他?在文献中有多种选择,例如,如this article中所述

更新来回答自己的问题。我使用 1-corr 形式的差异度量进行了猜测试验。那就是我编码的(Rbas是相关矩阵):

dissim1<-1-Rbas
dist1<-as.dist(dissim1)
plot(hclust(dist1))

并恢复了变量的顺序,与默认 corrplothclust 调用建议的顺序一致。但目前尚不清楚这是否确实是他们使用的机制,以及这是否适用于任何其他矩阵?

【问题讨论】:

    标签: r matrix distance hierarchical-clustering r-corrplot


    【解决方案1】:

    corrplot 用来对变量重新排序的函数是corrMatOrder(试试?corrMatOrder)。
    它返回一个排列向量。
    corrplot中选择order= "hclust"时,corrMatOrder调用corrplot:::reorder_using_hclust函数:

    function (corr, hclust.method) 
    {
        hc <- hclust(as.dist(1 - corr), method = hclust.method)
        order.dendrogram(as.dendrogram(hc))
    }
    

    此函数使用1-corr 作为差异度量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-15
      • 2019-07-28
      • 2020-06-25
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 2013-07-18
      • 2018-02-15
      相关资源
      最近更新 更多