Correlation
PCA關於相關性或協方差?
對相關矩陣和協方差矩陣執行主成分分析 (PCA) 的主要區別是什麼?他們給出相同的結果嗎?
當變量尺度相似時,您傾向於使用協方差矩陣,而當變量處於不同尺度時,您傾向於使用相關矩陣。
使用相關矩陣等同於標準化每個變量(平均為 0,標準差為 1)。一般來說,有和沒有標準化的 PCA 會給出不同的結果。特別是當尺度不同時。
例如,看看這個 R
heptathlon
數據集。一些變量的平均值約為 1.8(跳高),而其他變量(跑 800 米)的平均值約為 120。library(HSAUR) heptathlon[,-8] # look at heptathlon data (excluding 'score' variable)
這輸出:
hurdles highjump shot run200m longjump javelin run800m Joyner-Kersee (USA) 12.69 1.86 15.80 22.56 7.27 45.66 128.51 John (GDR) 12.85 1.80 16.23 23.65 6.71 42.56 126.12 Behmer (GDR) 13.20 1.83 14.20 23.10 6.68 44.54 124.20 Sablovskaite (URS) 13.61 1.80 15.23 23.92 6.25 42.78 132.24 Choubenkova (URS) 13.51 1.74 14.76 23.93 6.32 47.46 127.90 ...
現在讓我們對協方差和相關性進行 PCA:
# scale=T bases the PCA on the correlation matrix hep.PC.cor = prcomp(heptathlon[,-8], scale=TRUE) hep.PC.cov = prcomp(heptathlon[,-8], scale=FALSE) biplot(hep.PC.cov) biplot(hep.PC.cor)
請注意,協方差上的 PCA 由
run800m
and控制javelin
:PC1 幾乎等於run800m
(並解釋 $ 82% $ 方差)和 PC2 幾乎等於javelin
(他們一起解釋 $ 97% $ )。關於相關性的 PCA 提供的信息量更大,並揭示了數據中的一些結構和變量之間的關係(但請注意,解釋的方差下降到 $ 64% $ 和 $ 71% $ ).另請注意,無論是否使用協方差或相關矩陣,離群個體(在此數據集中)都是離群值。