主成分分析的視覺化展示

2021-10-23 21:03:05 字數 2742 閱讀 9744

一、主成分分析簡介

在對於一件事物的研究過程中,為了準確的反映事物間的關係,往往需要收集多維指標,以保證盡可能全面地收集資訊。然而多維指標往往會提高分析人員的分析難度,並且相似變數也造成了資訊重疊,不利於準確提煉資料關係的本質。

主成分分析法(pca)就是一種常見的降維演算法,它能夠降低資料維度,減少高維資料分析難度。主成分分析法能夠在實現降維的同時,能夠盡量的保證資訊損失。因此在很多分析工作中,可以通過提煉主成分的方式,僅依靠少數幾個線性組合代替原先的資料集,既提高了資料分析效率,又避免了資料資訊的過多損失。

二、r包介紹

factominer包是主要用於多元統計分析的r包,它能輕鬆實現主成分分析、因子分析、聚類分析等多元統計分析方法,並提供對分析結果做視覺化的分析工具。factoextra包也是多元統計分析包的主要元件,他主要用於提取多元統計分析結果,並進行視覺化探索。本文將基於factominer包和factoextra包進行主成分分析。

factominer包的主要函式:

factoextra包的主要函式:

三、資料簡介

使用datasets包裡的mtcars資料集作為主成分分析的測試資料。mtcars資料集記錄了32種不同品牌的轎車的的11個屬性,分別為:

四、主成分分析視覺化

本文採用factominer包的pca方法進行主成分分析,並以factoextra包進行分析及視覺化。

library(factominer)    

library(factoextra)

library(datasets)

res.pca

對於主成分分析,首先需要判斷選擇多少個主成分合適,一般可以選擇特徵值大於1的主成分。可以通過factoextra包的get_eigenvalue函式來輸出特徵值,具體見下圖。

eigenvalue為特徵值,variance.percent為主成分的方差貢獻率,cumulative.variance.percent為累積防擦好貢獻率。除了通過特徵值設定閾值外,還可以通過特徵值的累積貢獻率來選擇主成分數量。

1.碎石圖

通過各主成分的方差貢獻率,可以繪製如下這張碎石頭圖:

從碎石圖上看,前三個主成分的累積貢獻率接近90%,因此可以考慮選擇前三個主成分輸出。

除了特徵值外,還可以通過get_pca_var函式來提取主成分分析結果中的其它變數。

var
2.變數相關圖

通過fviz_pca_var函式,可以展示變數與主成分間的相關關係。我們以cos2這個指標為例,cos2反映了各個主成分中各個變數的代表性,乙個變數的所有主成分cos2值加起來等於1。對於主成分而言,某個變數的cos2越接近1,則說明變數對該主成分的代表性越高;cos2越接近0,則說明變數對該主成分的代表性越差。我們以第

一、第二兩類主成分為例:

上面這張圖為變數相關圖,反映了變數與主成分之間的相關關係,圖上的變數越接近圓周,則表示該變數對主成分的代表性越強;越接近圓心,則表示該變數對主成分的代表性越差。各變數到各個維度的距離則表現各變數對該主成分的代表性,即cos2。

從圖上看,mpg、cyl、disp、wt對第一主成分具有較高的代表性,但是對於第二主成分則不具有顯著的代表性。

2.變數貢獻圖

fviz_contrib()則展示了各變數對主成分的貢獻圖,以第

一、第二、主成分為例:

紅線表示各變數的平均貢獻率。

2.主成分樣本散點圖

對於給定的樣本點,可以對樣本點的主成分得分與主成分進行相關關係展示,以此來區分個樣本點的區別與相似。

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

從圖上可以看出來,不同模擬的汽車被聚集在了一起。右上角maserati bora, ferrari dino and ford pantera l三類汽車被聚集在了一起,因為他們都是跑車系列;mazda rx4和mazda rx4 wag聚集在了一起,因為他們都是mazda系列;從品牌的國家分類看,美國系列的汽車均處於的右下角,具有明顯的辨識度。

R可視乎 主成分分析結果視覺化

主成分分析法是很常用的一種資料降維方法。該方法可以減少資料的維數,並保持對方差貢獻最大的特徵,相當於保留低階主成分,忽略高階主成分。關於主成分的理論介紹和r語言 實現可見前段時間趙西西寫的推文 主成分分析 但是後面留了乙個小尾巴,如果想對主成分結果進行視覺化,那得怎麼實現?有沒有簡便的方法呢?正好這...

主成分分析

主成分分析 pca 分析乙個隨機向量的中的主成分 主成分一般不是隨機向量中的某乙個分量,而是不同分量的線性組合,根據資訊理論的觀點,資訊的多少與方差有關,所以 主成分是方差最大的幾個成分 主成分分析的方法是求隨機向量的協方差矩陣 用樣本協方差矩陣代替 對於差異較大的資料,可採用相關矩陣代替協方差矩陣...

主成分分析

理論要點 1 主成分分析是一種無監督學習,因此不能用交叉驗證來檢驗誤差 2 在處理資料之前,要對資料做中心化處理 3 p太大的話,做特徵分解用svd 4 一共有min n 1,p 個主成分,因為中心化以後,rank要降一維 5 主成分的載荷向量就是協方差矩陣的特徵向量,對應特徵值最大的是第一主成分,...