版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-主成分分析法

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識科普陣地
收藏
簡介

principal component analysis(PCA) 主成分分析法是一種數(shù)學(xué)變換的方法, 它把給定的一組相關(guān)變量通過線性變換轉(zhuǎn)成另一組不相關(guān)的變量,這些新的變量按照方差依次遞減的順序排列。在數(shù)學(xué)變換中保持變量的總方差不變,使第一變量具有最大的方差,稱為第一主成分,第二變量的方差次大,并且和第一變量不相關(guān),稱為第二主成分。依次類推,I個變量就有I個主成分。

其中Li為p維正交化向量(Li*Li=1),Zi之間互不相關(guān)且按照方差由大到小排列,則稱Zi為X的第I個主成分。設(shè)X的協(xié)方差矩陣為Σ,則Σ必為半正定對稱矩陣,求特征值λi(按從大到小排序)及其特征向量,可以證明,λi所對應(yīng)的正交化特征向量,即為第I個主成分Zi所對應(yīng)的系數(shù)向量Li,而Zi的方差貢獻(xiàn)率定義為λi/Σλj,通常要求提取的主成分的數(shù)量k滿足Σλk/Σλj>0.85。

進(jìn)行主成分分析后,還可以根據(jù)需要進(jìn)一步利用K-L變換(霍特林變換)對原數(shù)據(jù)進(jìn)行投影變換,達(dá)到降維的目的。

基本思想

PCA的基本原理就是將一個矩陣中的樣本數(shù)據(jù)投影到一個新的空間中去。對于一個矩陣來說,將其對角化即產(chǎn)生特征根及特征向量的過程,也是將其在標(biāo)準(zhǔn)正交基上投影的過程,而特征值對應(yīng)的即為該特征向量方向上的投影長度,因此該方向上攜帶的原有數(shù)據(jù)的信息越多。

主要目的

是希望用較少的變量去解釋原來資料中的大部分變量,將我們手中許多相關(guān)性很高的變量轉(zhuǎn)化成彼此相互獨立或不相關(guān)的變量。通常是選出比原始變量個數(shù)少,能解釋大部分資料中變量的幾個新變量,即所謂主成分,并用以解釋資料的綜合性指標(biāo)。由此可見,主成分分析實際上是一種降維方法。

分析步驟

將原始數(shù)據(jù)按行排列組成矩陣X

對X進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化,使其均值變?yōu)榱?/p>

求X的協(xié)方差矩陣C

將特征向量按特征值由大到小排列,取前k個按行組成矩陣P

通過計算Y = PX,得到降維后數(shù)據(jù)Y

用下式計算每個特征根的貢獻(xiàn)率Vi;Vi=xi/(x1+x2+........)

根據(jù)特征根及其特征向量解釋主成分物理意義。

舉例來說,二維平面有5個點,可以用2*5的矩陣X來表示:

對X進(jìn)行歸一化,使X每一行減去其對應(yīng)的均值,得到:

求X的協(xié)方差矩陣:

求解C的特征值,利用線性代數(shù)知識或是MATLAB中eig函數(shù)可以得到:

對應(yīng)的特征向量分別是:

將原數(shù)據(jù)降為一維,選擇最大的特征值對應(yīng)的特征向量,因此P為:

降維后的數(shù)據(jù):

MATLAB實現(xiàn)

MATLAB中自帶了進(jìn)行主成分分析的函數(shù),在命令行中輸入help pca可以查到該函數(shù)的以下幾種用法:

coeff = pca(X)

coeff = pca(X,Name,Value)

[coeff,score,latent] = pca(___)

[coeff,score,latent,tsquared] = pca(___)

[coeff,score,latent,tsquared,explained,mu] = pca(___)

其中,coeff為為X所對應(yīng)的協(xié)方差矩陣的特征值向量,latent為特征值組成的向量,score是原X矩陣在主成分空間的表示,tsquared表示霍特林T方統(tǒng)計值1。

對應(yīng)上面的例子,MATLAB代碼為:

X = [1 2 3 4 5;1 3 2 5 4];[coeff, ~, latent] = pca(X');[~,i] = max(latent);P = coeff(:,i);Y = P'*X;

輸出得到的結(jié)果相同。

應(yīng)用分析應(yīng)用

在社會調(diào)查中,對于同一個變量,研究者往往用多個不同的問題來測量一個人的意見。這些不同的問題構(gòu)成了所謂的測度項,它們代表一個變量的不同方面。主成分分析法被用來對這些變量進(jìn)行降維處理,使它們“濃縮”為一個變量,稱為因子。

在用主成分分析法進(jìn)行因子求解時,我們最多可以得到與測度項個數(shù)一樣多的因子。如果保留所有的因子,就起不到降維的目的了。但是我們知道因子的大小排列,我們可以對它們進(jìn)行舍取。哪有那么多小的因子需要舍棄呢?在一般的行為研究中,我們常常用到的判斷方法有兩個:特征根大于1法與碎石坡法。

因為因子中的信息可以用特征根來表示,所以我們有特征根大于1這個規(guī)則。如果一個因子的特征根大于1就保留,否則拋棄。這個規(guī)則,雖然簡單易用,卻只是一個經(jīng)驗法則(rule of thumb),沒有明確的統(tǒng)計檢驗。不幸的是,統(tǒng)計檢驗的方法在實際中并不比這個經(jīng)驗法則更有效(Gorsuch, 1983)。所以這個經(jīng)驗法則至今仍是最常用的法則。作為一個經(jīng)驗法則,它不總是正確的。它會高估或者低估實際的因子個數(shù)。它的適用范圍是20-40個的測度項,每個理論因子對應(yīng)3-5個測度項,并且樣本量是大的 ( 3100)。

碎石坡法是一種看圖方法。如果我們以因子的次序為X軸、以特征根大小為Y軸,我們可以把特征根隨因子的變化畫在一個坐標(biāo)上,因子特征根呈下降趨勢。這個趨勢線的頭部快速下降,而尾部則變得平坦。從尾部開始逆向?qū)ξ膊慨嬕粭l回歸線,遠(yuǎn)高于回歸線的點代表主要的因子,回歸線兩旁的點代表次要因子。但是碎石坡法往往高估因子的個數(shù)。這種方法相對于第一種方法更不可靠,所以在實際研究中一般不用。

拋棄小因子、保留大因子之后,降維的目的就達(dá)到了。

因子旋轉(zhuǎn)

在對社會調(diào)查數(shù)據(jù)進(jìn)行分析時,除了把相關(guān)的問題綜合成因子并保留大的因子,研究者往往還需要對因子與測度項之間的關(guān)系進(jìn)行檢驗,以確保每一個主要的因子(主成分)對應(yīng)于一組意義相關(guān)的測度項。為了更清楚的展現(xiàn)因子與測度項之間的關(guān)系,研究者需要進(jìn)行因子旋轉(zhuǎn)。常見的旋轉(zhuǎn)方法是VARIMAX旋轉(zhuǎn)。旋轉(zhuǎn)之后,如果一個測度項與對應(yīng)的因子的相關(guān)度很高(>0.5)就被認(rèn)為是可以接受的。如果一個測度項與一個不對應(yīng)的因子的相關(guān)度過高(>0.4),則是不可接受的,這樣的測度項可能需要修改或淘汰。

用主成分分析法得到因子,并用因子旋轉(zhuǎn)分析測度項與因子關(guān)系的過程往往被稱為探索性因子分析。

在探索性因子分析被接受之后,研究者可以對這些因子之間的關(guān)系進(jìn)行進(jìn)一步測試,比如用結(jié)構(gòu)方程分析來做假設(shè)檢驗。

問題

問題的提出主成分分析是一種降維的方法,便于分析問題,在諸多領(lǐng)域中都有廣泛的應(yīng)用。但有些教科書與論文使用主成分分析時,出現(xiàn)了一些錯誤與不足,不能解決實際問題。如一些多元統(tǒng)計分析的教材中,用協(xié)方差矩陣的主成分分析出現(xiàn)了如下錯誤與不足:①沒有明確和判斷該數(shù)據(jù)降維的條件是否成立。②主成分系數(shù)的平方和不為1。③沒有明確和判斷所用數(shù)據(jù)是否適合作單獨的主成分分析。④選取的主成分對原始變量沒有代表性。以下從相關(guān)性等理論與結(jié)果上依次解決上述問題,并給出相應(yīng)建議。

數(shù)據(jù)在行為與心理研究中,常常要求分析某種身份的人的行為特征,如本例中的小學(xué)生的日常行為特征,從而根據(jù)這些特征引導(dǎo)小學(xué)生向更積極的行為態(tài)度發(fā)展。這里用文獻(xiàn)[1]的數(shù)據(jù)見表1,其來自某課題組的調(diào)查結(jié)果。課題組對北方某小學(xué)480名5~6年級學(xué)生的日常行為進(jìn)行調(diào)查,共調(diào)查了11項指標(biāo)如下:S1~對老師提問的反應(yīng)、S2~對班級事務(wù)的關(guān)心、S3~自習(xí)課上的表現(xiàn)、S4~對家庭作業(yè)的態(tài)度、S5~關(guān)心同學(xué)的程度、S6~對待勞動的態(tài)度、S7~學(xué)習(xí)上的特殊興趣、S8~對待體育鍛煉的態(tài)度、S9~在娛樂上的偏好、S10~解決問題的思考方式、S11~對未來的打算 

主成分分析法和層次分析法異同

1.基于相關(guān)性分析的指標(biāo)篩選原理

兩個指標(biāo)之間的相關(guān)系數(shù),反映了兩個指標(biāo)之間的相關(guān)性。相關(guān)系數(shù)越大,兩個指標(biāo)反映的信息相關(guān)性就越高。而為了使評價指標(biāo)體系簡潔有效,就需要避免指標(biāo)反映信息重復(fù)2。通過計算同一準(zhǔn)則層中各個評價指標(biāo)之間的相關(guān)系數(shù),刪除相關(guān)系數(shù)較大的指標(biāo),避免了評價指標(biāo)所反映的信息重復(fù)。通過相關(guān)性分析,簡化了指標(biāo)體系,保證了指標(biāo)體系的簡潔有效3。

2.基于主成分分析的指標(biāo)篩選原理

(1)因子載荷的原理

通過對剩余多個指標(biāo)進(jìn)行主成分分析,得到每個指標(biāo)的因子載荷。因子載荷的絕對值小于等于1,而絕對值越是趨向于1,指標(biāo)對評價結(jié)果越重要4。

(2)基于主成分分析的指標(biāo)篩選原理

因子載荷反映指標(biāo)對評價結(jié)果的影響程度,因子載荷絕對值越大表示指標(biāo)對評價結(jié)果越重要,越應(yīng)該保留;反之,越應(yīng)該刪除。1通過對相關(guān)性分析篩選后的指標(biāo)進(jìn)行主成分分析,得到每個指標(biāo)的因子載荷,從而刪除因子載荷小的指標(biāo),保證篩選出重要的指標(biāo)3。

3.相關(guān)性分析和主成分分析相同點3

一是,基于相關(guān)性分析的指標(biāo)篩選和基于主成分分析的指標(biāo)篩選,均是在準(zhǔn)則層內(nèi)進(jìn)行指標(biāo)的篩選處理,準(zhǔn)則層之間不進(jìn)行篩選。這種做法的原因是,通過人為地劃分不同準(zhǔn)則層,反映評價事物不同層面的狀況,避免誤刪反應(yīng)信息不同的重要指標(biāo)。

二是,基于相關(guān)性分析的指標(biāo)篩選和基于主成分分析的指標(biāo)篩選的思路,均是篩選出少量具有代表性的指標(biāo)。

4.相關(guān)性分析和主成分分析不同點3

一是,兩次篩選的目的不同:基于相關(guān)性分析的指標(biāo)篩選的目的是刪除反應(yīng)信息冗余的評價指標(biāo)?;谥鞒煞址治龅闹笜?biāo)篩選的目的是刪除對評價結(jié)果影響較小的評價指標(biāo)。

二是,兩次篩選的作用不同:基于相關(guān)性分析的指標(biāo)篩選的作用是保證蹄選出的評價指標(biāo)體系簡潔明快?;谥鞒煞址治龅闹笜?biāo)簡選的目的是篩選出重要的指標(biāo)。