最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

深入理解和運用主成分分析(PCA)

2023-07-26 11:11 作者:林木青同學  | 我要投稿

主成分分析(PCA)可以對相關變量進行歸類,從而降低數(shù)據(jù)維度,提高對數(shù)據(jù)的理解。

身邊的人基本上都會主成分分析,我對它的感覺是,PCA雖然被廣泛使用,但是真正理解它的人卻很少。大部分人使用數(shù)據(jù)代碼,咔咔一頓分析,卻很少理解產(chǎn)出的結(jié)果。

本期的目的就是說清楚PCA的概念和使用方法。

01 主成分分析簡介

主成分分析顧名思義就是尋找主成分的過程。主成分是什么呢?

主成分可以認為是特征的規(guī)范性線性組合。在一個數(shù)據(jù)集中,第一個主成分就是能夠最大程度解釋數(shù)據(jù)中方差的特征線性組合。第二個主成分是在與第一主成分垂直這個限制條件下,最大程度解釋數(shù)據(jù)中的方差。其后的每一個主成分都遵循同樣的規(guī)則。

因此,可以看出,PCA中的線性組合是一個關鍵假設。如果你有一堆變量之間基本上不相關的數(shù)據(jù)集,用PCA分析就會得到毫無意義的分析結(jié)果。另一個關鍵的假設是,你使用的數(shù)據(jù)應該服從正態(tài)分布,這樣協(xié)方差矩陣即可充分描述數(shù)據(jù)集。PCA對非正態(tài)分布的數(shù)據(jù)具有相當強的魯棒性,甚至適用于二值變量。

如何理解特征的線性組合呢?假設有一個數(shù)據(jù)集,有兩個變量,數(shù)據(jù)集的分布圖如下:

每一個菱形代表一個觀測,數(shù)據(jù)已經(jīng)被標準化為均值為0、方差為1,因此數(shù)據(jù)正好組成一個橢圓形。

我們畫一個水平短線,使得數(shù)據(jù)在X軸上具有最大方差,這個主成分就是兩個變量的線性組合,表示為:

PC1?= a11X1+a12X2

這個主成分建立了一個基準方向,在這個方向上,數(shù)據(jù)差異最大。

同樣用同樣的方式得出第二主成分,只是它與第一主成分不相關,方向與第一主成分是垂直的。如下所示:

02 PCA分析流程

(1)變量標準化

對變量進行數(shù)據(jù)標準化是PCA的第一步。這主要是解決初始變量之間存在很大的差異的問題。

默認情況下,函數(shù)scale()對矩陣或數(shù)據(jù)框的指定列進行均值為0、標準差為1的標準化:

(2)降維

降維是PCA的核心。如何理解降維呢?比如,你有30個變量,使用PCA可將30個相關(很可能冗余)的環(huán)境變量轉(zhuǎn)化為5個無關的成分變量,并且盡可能地保留原始數(shù)據(jù)集的信息。

這個時候有幾個核心概念:

①特征向量

特征向量是方差最大(信息最多)的軸的方向,稱之為主成分。

②特征值

特征值為某個主成分的方差,其相對比例可理解為方差解釋度或貢獻值。特征值從第一主成分會逐漸減少。

③載荷

載荷是特征向量乘以特征值的平方根。載荷是每個主成分上各個原始變量的權(quán)重系數(shù)。

03?R語言中用于PCA的包

目前來講,主要有5個包用于PCA的計算:

(1)stats默認加載包,提供procomp()與princomp()函數(shù)。

(2)psych包,提供principal()函數(shù)。

(3)FactoMineR包,提供PCA()函數(shù)。

(4)ade4包duli.pca()函數(shù)。

(5)vegan包的rda()函數(shù)。

不同的包計算出的PCA結(jié)果會有一點差別。

04?如何用R語言完成主成分分析

這里我推薦大家學習《R語言實戰(zhàn)》和《數(shù)量生態(tài)學(第二版)》的例子來加深大家對PCA的理解。

4.1 Psych包做PCA

(1)首先我用psych包來演示PCA分析。數(shù)據(jù)用的R語言中自帶的iris數(shù)據(jù)集,

該數(shù)據(jù)包含3個鳶尾花物種的50個樣本,且每個樣本中測量了4個特征,即萼片和花瓣的長度和寬度。

我們需要對數(shù)據(jù)進行標準化,使數(shù)據(jù)的均值為0,標準差為1。完成標準化后,使用psych包提供的cor.plot()函數(shù),創(chuàng)建一個輸入特征的相關性統(tǒng)計圖。

可以看出萼片的長度與花瓣的長寬存在正相關關系,萼片的寬度與花瓣的長寬存在負相關關系,因此,這個數(shù)據(jù)集非常適合提取主成分。

(2)接下來,進行PCA分析

可以調(diào)用函數(shù)生成的pca對象檢查各個成分,但我們的主要目的是確定要保留的成分的數(shù)量。為此,使用碎石圖即可。碎石圖可以幫助你評估能解釋大部分數(shù)據(jù)方差的主成分,它用X軸表示主成分的數(shù)量,用Y軸表示相應的特征值。

需要在碎石圖中找出使得變化率降低的那個點。從這個圖可以看出,3個左右的主成分是可以的。

(3)正交旋轉(zhuǎn)與解釋

旋轉(zhuǎn)背后的意義是使變量在某個主成分上的載荷最大化,這樣可以減少(或消滅)主成分之間的相關性,有助于對主成分的解釋。進行正交旋轉(zhuǎn)的方法稱為“方差最大法”。

這里我們設定使用3個主成分,并需要進行正交旋轉(zhuǎn)。

如何看輸出結(jié)果呢?

輸出中有兩個部分比較重要,第一部分就是3個主成分中每個主成分的變量載荷,分別標注為RC1至RC3。對于第一個主成分,變量Petal.width具有非常高的正載荷,對于第二個主成分,變量Sepal.Length具有非常高的正載荷。

第二個重要部分,就是以平方和SS loading開始的表格,SS loading中的值是每個主成分的特征值。如果對特征值進行標準化,就可以得到Proportion Explained行。這一行表示的是每個主成分解釋的方差的比例??梢钥吹?,對于旋轉(zhuǎn)后的3個主成分能夠解釋的所有方差,第一個主成分可以解釋其中的44%,一般來講,你選擇的主成分應該至少解釋大約80%的全部方差(經(jīng)驗數(shù)據(jù))。查看Cumulative Var行可以知道,這3個旋轉(zhuǎn)后的主成分可以解釋99%的全部方差(我們的數(shù)據(jù)實際上可能并不會這么好)。所以我們可以充滿信心地認為,已經(jīng)找到了合適數(shù)量的主成分。

我們用ggplot2來可視化PCA的結(jié)果:

可以看出三個物種在PCA上具有顯著性的區(qū)別。

4.2 FactoMineR包做PCA

個人覺得FactoMineR包做PCA更為強大。FactoMineR包來做PCA,并使用factoextra來提取并可視化結(jié)果。數(shù)據(jù)同樣用的是iris的數(shù)據(jù)。

(1)PCA運算和結(jié)果

具體的結(jié)果我們可以通過summary()得到。

第一個PC解釋了72.96%的方差,第二個PC解釋了22.85%的方差。前兩個主成分累積解釋了96%的方差。

可以使用factoextra包的各個函數(shù)來提取變量的分析結(jié)果。

(2)碎石圖選取主成分

為了更直觀地展示每個主成分解釋的方差,我們可以使用函數(shù)fviz_screeplot()繪制所謂的碎石圖(screeplot)。

根據(jù)前面我們講的經(jīng)驗原則,希望提取的主成分累積解釋超過80%的方差(我看到也有人說是70%)。另外,我們希望提取的特征值大于1。

可以用get_eigenvalue()函數(shù)幫我們提取特征值。

可視化特征值:

由此可見,我們只需要提取前兩個主成分就行了。

(3)可視化PCA

在做可視化之前,要討論一下PCA可視化的類型:

首先,當前兩個主成分解釋數(shù)據(jù)中大部分方差時,你可以通過將觀測值投影到前兩個主成分的范圍上來可視化數(shù)據(jù)。在PCA中,此圖稱為分數(shù)圖(得分圖)。你還可以將變量向量投影到主成分的范圍上,這稱為載荷圖

PCA得分圖是一個散點圖,是用于可視化不同樣本之間相對位置的圖。而載荷圖是幾個向量構(gòu)成的圖,顯示了變量和主成分之間的關系。如下所示,我們可以觀察到PetalWidth和PetalLength在x軸的投影較大,而在y軸上投影較小,說明它們對第一個主成分軸的貢獻高,而PetalWidth和PetalLength的夾角較小,說明它們密切相關。

雙標圖:得分圖+載荷圖。一個雙標圖展示了以下信息:

點是行(案例/樣本),向量是列(變量)。兩個點之間的距離近似于它們的相似性。向量長度近似于變量的標準差。兩個向量之間的余弦近似于變量之間的相關性。

①PCA得分圖:觀測值坐標圖對應了factoextra包中的fviz_pca_ind()函數(shù)

首先,我們畫得分圖。這里我們使用物種信息來著色和分組。

②PCA載荷圖:

這里展示了變量對主成分的貢獻值。

同樣地,我們可以使用cos2這個指標,cos2反映了各個主成分中各個變量的代表性。一個變量的所有主成分cos2值加起來等于1。對于主成分而言,某個變量的cos2越接近1,則說明變量對該主成分的代表性越高;cos2越接近0,則說明變量對該主成分的代表性越差。

較高的 cos2 表示變量在主成分上有良好的代表性。在這種情況下,變量的位置靠近相關圓的圓周。反之,低 cos2 表示變量未由 PC 完美表示。在這種情況下,變量靠近圓心。

③雙標圖:

雙標圖可能是最常用的,fviz_pca_biplot()函數(shù)完成雙標圖:

這里展示優(yōu)化后的雙標圖:

4.3 Vegan包做PCA

這里展示的是《數(shù)量生態(tài)學》中的案例,但為了方便比較,用的數(shù)據(jù)還是iris的數(shù)據(jù)集。

同樣可以看到,前兩個主成分解釋了96%的方差。

用碎石圖判斷選擇多少個排序軸

繪制樣方和變量的雙序圖

雙序圖中第一種設定參數(shù)scaling = 1(最優(yōu)化展示對象之間的距離),第二個設定scaling = 2(最優(yōu)化展示變量之間的協(xié)方差)。

5 總結(jié)

PCA不是統(tǒng)計分析,而是一種探索性分析的方法。做這一期內(nèi)容我也學習到了PCA的復雜性,有很多地方?jīng)]有闡述明白的,希望大家見諒,我推薦大家學習《數(shù)量生態(tài)學》第二版的內(nèi)容。

點點關注,加入我們吧~


深入理解和運用主成分分析(PCA)的評論 (共 條)

分享到微博請遵守國家法律
大港区| 平南县| 黔东| 康定县| 屯昌县| 凤山县| 三穗县| 广灵县| 深州市| 雅江县| 彭泽县| 额尔古纳市| 巴塘县| 万全县| 广州市| 梁河县| 玛纳斯县| 吴川市| 景泰县| 洛南县| 息烽县| 安阳县| 北海市| 道孚县| 邵阳市| 鄂托克前旗| 涡阳县| 南皮县| 南靖县| 东阿县| 讷河市| 镇坪县| 正镶白旗| 宜阳县| 荥阳市| 铜山县| 都昌县| 怀远县| 大邑县| 五峰| 黑龙江省|