2017-08-26 79 views
2

我使用R包corrplot來根據我的數據可視化相關矩陣。我使用嵌入式選項hclust參與了變量的聚類。 命令的調用是這樣的(標題加上各種安排,軸等):r corplot with clustering:相關矩陣的默認相異性度量

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

但現在我用其他的包進行了一些分析和可視化,問題出現了關於結果的兼容性。特別是,我必須手動重複相關矩陣的聚類。但從文檔到corrplot有一個不起眼的地方:在corplot中使用了什麼不相似度量來衡量其合理的默認值?無論這是1- | corr |,sqrt(1-corr^2)還是其他任何東西?在文獻中有多種選擇,例如,如this article

更新回答自己的問題中所述。我進行了猜測試驗,使用1-corr形式的不相似度量。這就是我編碼(RBAS是相關矩陣):

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

和回收的變量的順序,與所述一個默認corrplothclust調用建議一致。但不清楚這是否確實是其使用機制,以及這是否適用於任何其他矩陣?

回答

1

corrplot用於重新排序變量的函數是corrMatOrder(嘗試?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相異性度量。