本篇是第十二章,內容是主成分分析。 這篇博客的完整內容包含各種數學表達。能夠見我CSDN和hexo搭的我的博客。 CSDN博客html
hexo的我的博客git
依舊從問題開始本篇的介紹。地理學和生態學研究裏常常遇到的問題就是,影響變量很是之多,並且地球表層地理生態環境現象沒法使用控制變量的方式進行實驗。同時影響變量很是多,常常出現變量冗餘、冗雜的現象,同時多元分佈數據自己對人類的認知就是一種挑戰。這裏舉個栗子:好比在研究城市經濟發展的時候,咱們會考慮到的因素會包括第一產業、第二產業、第三產業佔比,城市人口,城市地理位置,城市氣候適宜度,政策扶持等等不少因子,可是這裏有不少因子存在共線性的狀況,也就是變量冗餘冗雜。用矛盾論的話說,要抓住主要矛盾,那麼如何在多元分佈數據中分離出主要的因子,這就是本篇的主角主成分分析(Priciple Component Analysis,PCA)。github
因此它的基本思想是。hexo
在社會經濟的研究中,爲了全面系統的分析和研究問題,必須考慮許多經濟指標,這些指標能從不一樣的側面反映咱們所研究的對象的特徵,但在某種程度上存在信息的重疊,具備必定的相關性。這種信息的重疊有時甚至會抹殺事物的真正特徵與內在規律。 主成分分析是利用降維的思想, 在力求數據信息丟失最少的原則下,對高維的變量空間降維,即在衆多變量中找出少數幾個綜合指標(原始變量的線性組合),而且這幾個綜合指標將盡量多地保留原來指標變異方面的信息,且這些綜合指標互不相關。這些綜合指標就稱爲主成分。主成分的數目少於原始變量的數目。 在一個低維空間識辨系統要比在一個高維空間容易得多。所以,更容易抓住主要矛盾,揭示事物內部變量之間的規律性,使問題獲得簡化,提升分析效率。指標間具備相關性是作主成分分析的前提。 主成分分析是一種數學變換方法,它把給定的一組變量經過線性變換轉換爲一組不相關的變量。在這種變換中,保持變量的總方差不變,同時,使第一主成分具備最大方差,第二主成分具備次大方差,依此類推。 主成分與原始變量間的關係 (1)每個主成分是原始變量的線性組合。 (2)主成分的數目少於原始變量的數目。 (3)主成分保留了原始變量的大多數變異信息。 (4)各主成分間互不相關。函數
假定只有二維,即只有兩個變量,由橫座標和縱座標所表明;每一個觀測值都有相應於這兩個座標軸的座標值。若是這些數據造成一個橢圓形狀的點陣(這在二維正態的假定下是可能的)該橢圓有一個長軸和一個短軸。在短軸方向上數據變化較少。在極端的狀況,短軸如退化成一點,長軸的方向能夠徹底解釋這些點的變化,由二維到一維的降維就天然完成了。.net
由圖能夠看出這些樣本點不管是沿着xl軸方向或x2軸方向都具備較大的離散性,其離散的程度能夠分別用觀測變量x1的方差和x2的方差定量地表示。顯然,若是隻考慮x1和x2中的任何一個,那麼包含在原始數據中的經濟信息將會有較大的損失。 當座標軸和橢圓的長短軸平行,那麼表明長軸的變量就描述了數據的主要變化,而表明短軸的變量就描述了數據的次要變化。可是,座標軸一般並不和橢圓的長短軸平行。所以,須要尋找橢圓的長短軸,並進行變換,使得新變量和橢圓的長短軸平行。若是長軸變量表明瞭數據包含的大部分信息,就用該變量代替原先的兩個變量(捨去次要的一維),降維就完成了。橢圓的長短軸相差得越大,降維也越有道理。code
若是咱們將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。 主成分之間相互獨立,即無重疊的信息。 主成分的方差依次遞減,重要性依次遞減,component
兩個線性代數的結論 詳見CSDN和hexo博客htm
一、均值 $E(U'x)=U'\mu$ 二、方差爲全部特徵根之和 三、精度分析 1)貢獻率:第i個主成分的方差在所有方差中所佔比重稱爲貢獻率,體現這個主成分的綜合能力的大小,即反映原來p個指標的信息的多少。 2)累積貢獻率:前k個主成分共有多大的綜合能力,用這個k個主成分的方差和在所有方差中所佔比重來描述,稱爲累積貢獻率。 咱們進行主成分分析的目的之一是但願用盡量少的主成分代替原來的p個指標。到底應該選擇多少個主成分,在實際工做中,所採用主成分個數的多少取決於可以反映原來變量85%以上的信息量爲依據,即當累積貢獻率≥85%時的主成分的個數就足夠了。最多見的狀況是主成分爲2到3個。 四、載荷矩陣 原始變量被主成分的提取率 主成分的貢獻率和累計貢獻率度量了從原始變量中提取了多少信息。 公共成分 定義:若是一個主成分僅僅對某一個原始變量有做用,則稱爲特殊成分。若是一個主成分對全部的原始變量都起做用,則稱爲公共成分。對象
第一步:由X的協方差陣或相關係數陣Σ,求出其特徵根,即解方程,可得特徵根。 第二步:求出特徵根所對應的特徵向量, 第三步:計算累積貢獻率,給出恰當的主成分個數。 第四步:計算所選出的k個主成分的得分。將原始數據的中心化值: 代入前k個主成分的表達式,分別計算出各單位k個主成分的得分,並按得分值的大小排隊。
基於協方差矩陣
基於相關係數矩陣
若是變量有不一樣的量綱, 變量水平差別很大,應該基於相關係數矩陣進行主成分分析。不一樣的是計算得分時應採用標準化後的數據。
一、主成分分析能下降所研究的數據空間的維數。即用研究m維的Y空間代替p維的X空間(m<p),而低維的Y空間代替高維的x空間所損失的信息不多。即便只有一個主成分Y1(即m=1)時,這個Y1還是使用所有X變量(p個)獲得的。在所選的前m個主成分中,若是某個Xi的係數所有近似於零的話,就能夠把這個Xi刪除,這也是一種刪除多餘變量的方法。 二、多維數據的一種圖形表示方法。多元統計研究的問題大都多於3個變量,要把研究的問題用圖形表示出來是不可能的。然而,通過主成分分析後,咱們能夠選取前兩個主成分或其中某兩個主成分,根據主成分的得分,畫出n個樣品在二維平面上的分佈狀況,由圖形可直觀地看出各樣品在主份量中的地位。 三、用主成分分析法構造迴歸模型。即把各主成分做爲新自變量代替原來的自變量作迴歸分析。 主成分迴歸方法 主成分分析的一些注意事項 主成分分析依賴於原始變量,也只能反映原始變量的信息。因此原始變量的選擇很重要。 若是原始變量本質上獨立,那麼降維就可能失敗,這是由於很難把不少獨立變量用少數綜合的變量歸納。數據越相關,降維效果就越好。 分析結果並不必定會有清楚的解釋。這與問題的性質,選取的原始變量以及數據的質量等都有關係。 基於相關係數矩陣仍是基於協方差矩陣作主成分分析? 有時基於相關係數矩陣和基於協方差矩陣求出的主成分會有很大不一樣,且二者之間不存在簡單的線性關係。 通常而言,當分析中所選擇的經濟變量具備不一樣的量綱,變量水平差別很大,應考慮將數據標準化,選擇基於相關係數矩陣的主成分分析。對同度量或是取值範圍在同量級的數據,選擇基於協方差矩陣的主成分分析。 選擇幾個主成分? 主成分分析的目的是簡化變量,通常狀況下主成分的個數應該小於原始變量的個數。關於保留幾個主成分,應該權衡主成分個數和保留的信息。 如何解釋主成分所包含的經濟意義? 主成分分析不要求數據來自於正態整體。通常認爲當原始數據大部分變量的相關係數都小於0.3時,運用主成分分析的效果不顯著。
主成分分析的函數本篇介紹的主要有兩個。 一個是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交點的橫座標即爲主成分個數,而主成分得分荷圖是將原始數據的座標映射在主成分分析的座標上,事實上能夠根據主成分得分在不一樣象限對原始數據進行分類,在本篇的樣例數據裏其實就是能夠經過人口生成的幾個主成分對中國地級市進行分類,能夠區分出是在第一主成分得分高,第二主成分得分低的城市,亦或是其餘排列組合的分類結果。關於這種可視化圖具體如何解釋。能夠參照以下的文章。