主成分分析的可視化展示
一、主成分分析簡介
在對于一件事物的研究過程中,為了準(zhǔn)確的反映事物間的關(guān)系,往往需要收集多維指標(biāo),以保證盡可能全面地收集信息。然而多維指標(biāo)往往會提高分析人員的分析難度,并且相似變量也造成了信息重疊,不利于準(zhǔn)確提煉數(shù)據(jù)關(guān)系的本質(zhì)。
主成分分析法(PCA)就是一種常見的降維算法,它能夠降低數(shù)據(jù)維度,減少高維數(shù)據(jù)分析難度。主成分分析法能夠在實現(xiàn)降維的同時,能夠盡量的保證信息損失。因此在很多分析工作中,可以通過提煉主成分的方式,僅依靠少數(shù)幾個線性組合代替原先的數(shù)據(jù)集,既提高了數(shù)據(jù)分析效率,又避免了數(shù)據(jù)信息的過多損失。
二、R包介紹
FactoMineR包是主要用于多元統(tǒng)計分析的R包,它能輕松實現(xiàn)主成分分析、因子分析、聚類分析等多元統(tǒng)計分析方法,并提供對分析結(jié)果做可視化的分析工具。factoextra包也是多元統(tǒng)計分析包的主要組件,它主要用于提取多元統(tǒng)計分析結(jié)果,并進行可視化探索。本文將基于FactoMineR包和factoextra包進行主成分分析。
FactoMineR包的主要函數(shù):
PCA:用于主成分分析的方法
HCPC:層次聚類分析法
MCA:多重對應(yīng)分析
MFA:多因素分析
FAMD: 混合數(shù)據(jù)因子分析
CA : 對應(yīng)分析
factoextra包的主要函數(shù):
fviz_pca:可視化PCA分析
fviz_mca:可視化多重對應(yīng)分析
fviz_hmfa_var:可視化多因素分析
eclust:可視化聚類分析結(jié)果
三、數(shù)據(jù)簡介
使用Datasets包里的mtcars數(shù)據(jù)集作為主成分分析的測試數(shù)據(jù)。mtcars數(shù)據(jù)集記錄了32種不同品牌的轎車的的11個屬性,分別為:
mpg: 數(shù)值型,車輛油耗,單位是每加侖英里數(shù)
cyl: 數(shù)值型,氣缸數(shù)
disp: 數(shù)值型,發(fā)動機排量
hp: 數(shù)值型,馬力數(shù)
drat: 數(shù)值型,后橋速比
wt: 數(shù)值型,車身重量,單位為千磅
qsec: 數(shù)值型,四分之一英里加速時間
vs: 數(shù)值型,V/S
am: 數(shù)值型,0=自動擋,1=手動擋
gear: 數(shù)值型,前進檔位數(shù)
carb: 數(shù)值型,化油器數(shù)量
四、主成分分析可視化
本文采用FactoMineR包的PCA方法進行主成分分析,并以factoextra包進行分析及可視化。
library(FactoMineR)
library(factoextra)
library(datasets)
res.pca <- PCA(mtcars, graph = FALSE,scale.unit=T)
對于主成分分析,首先需要判斷選擇多少個主成分合適,一般可以選擇特征值大于1的主成分。可以通過factoextra包的get_eigenvalue函數(shù)來輸出特征值,具體見下圖。

eigenvalue為特征值,variance.percent為主成分的方差貢獻率,cumulative.variance.percent為累積防擦好貢獻率。除了通過特征值設(shè)定閾值外,還可以通過特征值的累積貢獻率來選擇主成分數(shù)量。
1.碎石圖
通過各主成分的方差貢獻率,可以繪制如下這張碎石頭圖:

從碎石圖上看,前三個主成分的累積貢獻率接近90%,因此可以考慮選擇前三個主成分輸出。
除了特征值外,還可以通過get_pca_var函數(shù)來提取主成分分析結(jié)果中的其它變量。
var <- get_pca_var(res.pca)
2.變量相關(guān)圖
通過fviz_pca_var函數(shù),可以展示變量與主成分間的相關(guān)關(guān)系。我們以cos2這個指標(biāo)為例,cos2反映了各個主成分中各個變量的代表性,一個變量的所有主成分cos2值加起來等于1。對于主成分而言,某個變量的cos2越接近1,則說明變量對該主成分的代表性越高;cos2越接近0,則說明變量對該主成分的代表性越差。我們以第一、第二兩類主成分為例:
fviz_pca_var(res.pca, col.var = "cos2",
gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07")
)

上面這張圖為變量相關(guān)圖,反映了變量與主成分之間的相關(guān)關(guān)系,圖上的變量越接近圓周,則表示該變量對主成分的代表性越強;越接近圓心,則表示該變量對主成分的代表性越差。各變量到各個維度的距離則表現(xiàn)各變量對該主成分的代表性,即cos2。從圖上看,mpg、cyl、disp、wt對第一主成分具有較高的代表性,但是對于第二主成分則不具有顯著的代表性。
3.變量貢獻圖
fviz_contrib()則展示了各變量對主成分的貢獻圖,以第一、第二、主成分為例:


紅線表示各變量的平均貢獻率。
4.主成分樣本散點圖
對于給定的樣本點,可以對樣本點的主成分得分與主成分進行相關(guān)關(guān)系展示,以此來區(qū)分個樣本點的區(qū)別與相似。

如果按照汽車品牌的國家分類的話,還可以在圖中對樣本點進行分組:

往期精品(點擊圖片直達文字對應(yīng)教程)
后臺回復(fù)“生信寶典福利第一波”或點擊閱讀原文獲取教程合集




























