r具有聚类的corrplot:相关矩阵的默认相异度度量

时间:2017-08-26 14:01:59

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

我使用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))

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

1 个答案:

答案 0 :(得分:1)

corrplot用于重新排序变量的函数是corrMatOrder(try ?corrMatOrder)。
它返回单个置换向量 在order= "hclust"中选择corrplot后,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作为相异度度量。