Correlation
基於變量之間的相關性聚類變量
問題:
- 我有一個很大的相關矩陣。我不想對單個相關性進行聚類,而是根據變量彼此的相關性對變量進行聚類,即如果變量 A 和變量 B 與變量 C 到 Z 具有相似的相關性,那麼 A 和 B 應該屬於同一個集群。現實生活中的一個很好的例子是不同的資產類別——資產類別內部的相關性高於資產類別之間的相關性。
- 我還在考慮根據變量之間的強度關係對變量進行聚類,例如,當變量 A 和 B 之間的相關性接近於 0 時,它們或多或少地獨立運行。如果突然一些潛在條件發生變化並出現強相關性(正或負),我們可以認為這兩個變量屬於同一個集群。因此,與其尋找正相關,不如尋找關係與無關係。我想一個類比可能是一簇帶正電和帶負電的粒子。如果電荷下降到 0,粒子就會從簇中漂移。然而,正電荷和負電荷都將粒子吸引到相關的簇中。
如果其中一些不是很清楚,我深表歉意。請告訴我,我會澄清具體細節。
這是 R 中使用數據集的一個簡單示例
bfi
:bfi 是圍繞 5 個因素組織的 25 個性格測試項目的數據集。library(psych) data(bfi) x <- bfi
根據變量之間的絕對相關性,使用變量之間的歐幾里登距離進行層次聚類分析,如下所示:
plot(hclust(dist(abs(cor(na.omit(x))))))
樹狀圖顯示項目通常如何根據理論分組(例如,N(神經質)項目組合在一起)與其他項目聚集在一起。它還顯示了集群中的某些項目如何更相似(例如,C5 和 C1 可能比 C5 和 C3 更相似)。它還表明 N 集群與其他集群不太相似。
或者,您可以像這樣進行標準因子分析:
factanal(na.omit(x), 5, rotation = "Promax") Uniquenesses: A1 A2 A3 A4 A5 C1 C2 C3 C4 C5 E1 E2 E3 E4 E5 N1 0.848 0.630 0.642 0.829 0.442 0.566 0.635 0.572 0.504 0.603 0.541 0.457 0.541 0.420 0.549 0.272 N2 N3 N4 N5 O1 O2 O3 O4 O5 0.321 0.526 0.514 0.675 0.625 0.804 0.544 0.630 0.814 Loadings: Factor1 Factor2 Factor3 Factor4 Factor5 A1 0.242 -0.154 -0.253 -0.164 A2 0.570 A3 -0.100 0.522 0.114 A4 0.137 0.351 -0.158 A5 -0.145 0.691 C1 0.630 0.184 C2 0.131 0.120 0.603 C3 0.154 0.638 C4 0.167 -0.656 C5 0.149 -0.571 0.125 E1 0.618 0.125 -0.210 -0.120 E2 0.665 -0.204 E3 -0.404 0.332 0.289 E4 -0.506 0.555 -0.155 E5 0.175 -0.525 0.234 0.228 N1 0.879 -0.150 N2 0.875 -0.152 N3 0.658 N4 0.406 0.342 -0.148 0.196 N5 0.471 0.253 0.140 -0.101 O1 -0.108 0.595 O2 -0.145 0.421 0.125 0.199 O3 -0.204 0.605 O4 0.244 0.548 O5 0.139 0.177 -0.441 Factor1 Factor2 Factor3 Factor4 Factor5 SS loadings 2.610 2.138 2.075 1.899 1.570 Proportion Var 0.104 0.086 0.083 0.076 0.063 Cumulative Var 0.104 0.190 0.273 0.349 0.412 Test of the hypothesis that 5 factors are sufficient. The chi square statistic is 767.57 on 185 degrees of freedom. The p-value is 5.93e-72