Chapter 12 Priciple Component Analysis
本篇是第十二章,內容是主成分分析。
這篇博客的完整內容包含各類數學表達。可以見我CSDN和hexo搭的個人博客。
CSDN博客
1 主成分分析基本思想
依舊從問題開始本篇的介紹。地理學和生態學研究里經常遇到的問題就是,影響變量非常之多,而且地球表層地理生態環境現象無法使用控制變量的方式進行實驗。同時影響變量非常多,經常出現變量冗余、冗雜的現象,同時多元分布數據本身對人類的認知就是一種挑戰。這里舉個栗子:比如在研究城市經濟發展的時候,我們會考慮到的因素會包括第一產業、第二產業、第三產業占比,城市人口,城市地理位置,城市氣候適宜度,政策扶持等等很多因子,但是這里有很多因子存在共線性的情況,也就是變量冗余冗雜。用矛盾論的話說,要抓住主要矛盾,那么如何在多元分布數據中分離出主要的因子,這就是本篇的主角主成分分析(Priciple Component Analysis,PCA)。
所以它的基本思想是。
在社會經濟的研究中,為了全面系統的分析和研究問題,必須考慮許多經濟指標,這些指標能從不同的側面反映我們所研究的對象的特征,但在某種程度上存在信息的重疊,具有一定的相關性。這種信息的重疊有時甚至會抹殺事物的真正特征與內在規律。
主成分分析是利用降維的思想, 在力求數據信息丟失最少的原則下,對高維的變量空間降維,即在眾多變量中找出少數幾個綜合指標(原始變量的線性組合),并且這幾個綜合指標將盡可能多地保留原來指標變異方面的信息,且這些綜合指標互不相關。這些綜合指標就稱為主成分。主成分的數目少于原始變量的數目。
在一個低維空間識辨系統要比在一個高維空間容易得多。因此,更容易抓住主要矛盾,揭示事物內部變量之間的規律性,使問題得到簡化,提高分析效率。指標間具有相關性是做主成分分析的前提。
主成分分析是一種數學變換方法,它把給定的一組變量通過線性變換轉換為一組不相關的變量。在這種變換中,保持變量的總方差不變,同時,使第一主成分具有最大方差,第二主成分具有次大方差,依此類推。
主成分與原始變量間的關系
(1)每一個主成分是原始變量的線性組合。
(2)主成分的數目少于原始變量的數目。
(3)主成分保留了原始變量的大多數變異信息。
(4)各主成分間互不相關。
2 幾何解釋與數學模型
2.1 幾何解釋
假定只有二維,即只有兩個變量,由橫坐標和縱坐標所代表;每個觀測值都有相應于這兩個坐標軸的坐標值。如果這些數據形成一個橢圓形狀的點陣(這在二維正態的假定下是可能的)該橢圓有一個長軸和一個短軸。在短軸方向上數據變化較少。在極端的情況,短軸如退化成一點,長軸的方向可以完全解釋這些點的變化,由二維到一維的降維就自然完成了。
由圖可以看出這些樣本點無論是沿著xl軸方向或x2軸方向都具有較大的離散性,其離散的程度可以分別用觀測變量x1的方差和x2的方差定量地表示。顯然,如果只考慮x1和x2中的任何一個,那么包含在原始數據中的經濟信息將會有較大的損失。
當坐標軸和橢圓的長短軸平行,那么代表長軸的變量就描述了數據的主要變化,而代表短軸的變量就描述了數據的次要變化。但是,坐標軸通常并不和橢圓的長短軸平行。因此,需要尋找橢圓的長短軸,并進行變換,使得新變量和橢圓的長短軸平行。如果長軸變量代表了數據包含的大部分信息,就用該變量代替原先的兩個變量(舍去次要的一維),降維就完成了。橢圓的長短軸相差得越大,降維也越有道理。
2.2 數學模型
如果我們將xl軸和x2軸先平移,再同時按逆時針方向旋轉θ角度,得到新坐標軸Fl和F2。Fl和F2是兩個新變量。
旋轉變換的目的是為了使得n個樣品點在Fl軸方向上的離散程度最大,即Fl的方差最大。變量Fl代表了原始數據的絕大部分信息,在研究某經濟問題時,即使不考慮變量F2也無損大局。經過上述旋轉變換原始數據的大部分信息集中到Fl軸上,對數據中包含的信息起到了濃縮作用。
Fl, F2除了可以對包含在Xl, X2中的信息起著濃縮作用之外,還具有不相關的性質,這就使得在研究復雜的問題時避免了信息重疊所帶來的虛假性。二維平面上的個點的方差大部分都歸結在Fl軸上,而F2軸上的方差很小。 Fl和F2稱為原始變量,x1和x2的綜合變量。 簡化了系統結構,抓住了主要矛盾。
多維情形
多維變量的情況和二維類似。正如二維橢圓有兩個主軸,三維橢球有三個主軸一樣,有幾個變量,就有幾個主軸。和二維情況類似,高維橢球的主軸也是互相垂直的。首先把高維橢球的主軸找出來,再用代表大多數數據信息的最長的幾個軸作為新變量。這些互相正交的新變量是原先變量的線性組合,叫做主成分(principal component)。
假設我們所討論的實際問題中,有p個指標,我們把這p個指標看作p個隨機變量,主成分分析就是要把這個p指標的問題,轉變為討論p個指標的線性組合的問題,而這些新的指標按照保留主要信息量的原則充分反映原指標的信息,并且相互獨立。
這種由討論多個指標降為少數幾個綜合指標的過程在數學上就叫做降維。主成分分析通常的做法是,尋求原指標的線性組合Fi。
滿足條件
每個主成分的系數平方和為1。
主成分之間相互獨立,即無重疊的信息。
主成分的方差依次遞減,重要性依次遞減,
3 主成分的推導
兩個線性代數的結論
詳見CSDN和hexo博客
4 主成分的性質
1、均值 $E(U'x)=U'\mu$
2、方差為所有特征根之和
3、精度分析
1)貢獻率:第i個主成分的方差在全部方差中所占比重稱為貢獻率,體現這個主成分的綜合能力的大小,即反映原來p個指標的信息的多少。
2)累積貢獻率:前k個主成分共有多大的綜合能力,用這個k個主成分的方差和在全部方差中所占比重來描述,稱為累積貢獻率。
我們進行主成分分析的目的之一是希望用盡可能少的主成分代替原來的p個指標。到底應該選擇多少個主成分,在實際工作中,所采用主成分個數的多少取決于能夠反映原來變量85%以上的信息量為依據,即當累積貢獻率≥85%時的主成分的個數就足夠了。最常見的情況是主成分為2到3個。
4、載荷矩陣
原始變量被主成分的提取率
主成分的貢獻率和累計貢獻率度量了從原始變量中提取了多少信息。
公共成分
定義:如果一個主成分僅僅對某一個原始變量有作用,則稱為特殊成分。如果一個主成分對所有的原始變量都起作用,則稱為公共成分。
5 主成分分析的步驟
第一步:由X的協方差陣或相關系數陣Σ,求出其特征根,即解方程,可得特征根。
第二步:求出特征根所對應的特征向量,
第三步:計算累積貢獻率,給出恰當的主成分個數。
第四步:計算所選出的k個主成分的得分。將原始數據的中心化值:
代入前k個主成分的表達式,分別計算出各單位k個主成分的得分,并按得分值的大小排隊。
基于協方差矩陣
基于相關系數矩陣
如果變量有不同的量綱, 變量水平差異很大,應該基于相關系數矩陣進行主成分分析。不同的是計算得分時應采用標準化后的數據。
6 主成分的應用與回歸
1、主成分分析能降低所研究的數據空間的維數。即用研究m維的Y空間代替p維的X空間(m<p),而低維的Y空間代替高維的x空間所損失的信息很少。即使只有一個主成分Y1(即m=1)時,這個Y1仍是使用全部X變量(p個)得到的。在所選的前m個主成分中,如果某個Xi的系數全部近似于零的話,就可以把這個Xi刪除,這也是一種刪除多余變量的方法。
2、多維數據的一種圖形表示方法。多元統計研究的問題大都多于3個變量,要把研究的問題用圖形表示出來是不可能的。然而,經過主成分分析后,我們可以選取前兩個主成分或其中某兩個主成分,根據主成分的得分,畫出n個樣品在二維平面上的分布情況,由圖形可直觀地看出各樣品在主分量中的地位。
3、用主成分分析法構造回歸模型。即把各主成分作為新自變量代替原來的自變量做回歸分析。
主成分回歸方法
主成分分析的一些注意事項
主成分分析依賴于原始變量,也只能反映原始變量的信息。所以原始變量的選擇很重要。
如果原始變量本質上獨立,那么降維就可能失敗,這是因為很難把很多獨立變量用少數綜合的變量概括。數據越相關,降維效果就越好。
分析結果并不一定會有清楚的解釋。這與問題的性質,選取的原始變量以及數據的質量等都有關系。
基于相關系數矩陣還是基于協方差矩陣做主成分分析?
有時基于相關系數矩陣和基于協方差矩陣求出的主成分會有很大不同,且兩者之間不存在簡單的線性關系。
一般而言,當分析中所選擇的經濟變量具有不同的量綱,變量水平差異很大,應考慮將數據標準化,選擇基于相關系數矩陣的主成分分析。對同度量或是取值范圍在同量級的數據,選擇基于協方差矩陣的主成分分析。
選擇幾個主成分?
主成分分析的目的是簡化變量,一般情況下主成分的個數應該小于原始變量的個數。關于保留幾個主成分,應該權衡主成分個數和保留的信息。
如何解釋主成分所包含的經濟意義?
主成分分析不要求數據來自于正態總體。一般認為當原始數據大部分變量的相關系數都小于0.3時,運用主成分分析的效果不顯著。
7 主成分分析的R語言實現
主成分分析的函數本篇介紹的主要有兩個。
一個是princomp,一個是psych里的principal。
princomp(x,cor=FALSE,scores=TRUE)
x為主成分分析數據集,cor=TRUE和FALSE分別代表是基于相關系數矩陣計算還是協方差矩陣計算。scores則代表是否存儲主成分得分。
principal(x,nfactors=2,rotate="varimax",scores=T,covar=F)
x為主成分分析數據集,nfactors為主成分個數,rotate表示旋轉方式(一般選方差最大,保證互不相關),scores則代表是否存儲主成分得分,covar=TRUE和FALSE分別代表是基于協方差矩陣計算還是相關系數矩陣計算。
這回用的數據是2006年城市統計年鑒285個地級市的經濟人口數據,探究gdp與人口之間的關系。
先做一個相關系數可視化。發現人口因子之間相互影響因子很高。
于是先對人口的幾個因子進行降維和主成分分析,中途發現第三產業從業人數(third)加入會使得系數矩陣不正定,后面就刪除了第三產業從業人數(third)。
分別用不同方式進行主成分分析結果。
princomp結果(基于協方差矩陣)
碎石圖
結果
主成分得分圖
princomp結果(基于相關系數矩陣)
碎石圖
結果
主成分得分圖
principal結果
碎石圖
因子關系圖
主成分得分圖
碎石圖表示的是曲線與縱坐標1交點的橫坐標即為主成分個數,而主成分得分荷圖是將原始數據的坐標映射在主成分分析的坐標上,事實上可以根據主成分得分在不同象限對原始數據進行分類,在本篇的樣例數據里其實就是可以通過人口生成的幾個主成分對中國地級市進行分類,可以區分出是在第一主成分得分高,第二主成分得分低的城市,亦或是其他排列組合的分類結果。關于這種可視化圖具體如何解釋。可以參照如下的文章。