天天看點

備忘錄之主成分分析

備忘錄之主成分分析

//這個暑期國小期,跟管理技術系的同學上營銷資料分析。這門選修,主要是為湊學分了,偶爾也在課程bbs發些貼,權當備忘錄了。這個主成分分析,主要來自高惠璇老師的兩本教材,《應用多元統計分析》(北京大學出版社,2005)和《實用統計方法與SAS系統》(北京大學出版社,2001)。這個貼就發在學院bbs上,其他ip登不上,貼過來。在記事本上寫的,像Z1這樣的标記就是Z加一個下标1。

在實際問題中,如果變量個數太多:

1.變量彼此存在一定的相關性,因而觀測到的資料在一定程度上反映的資訊有所重疊(多重共線性);

2.在高維空間中研究樣本的分布規律比較複雜,變量太多增加分析問題的複雜性。

我們希望:

1.用較少的綜合變量來代替原來較多的變量(降維,減少次元);

2.這幾個綜合變量能夠盡可能多地反映原來變量的資訊;

3.這幾個綜合變量彼此互不相關。

主成分分析、因子分析、典型相關分析和偏最小二乘回歸等統計方法就是以上降維思想的展現。

一、主成分分析

1.定義

這裡說的主成分分析,又稱主分量分析、主軸分析,是将多個名額(變量)化為少數幾個綜合名額的一種統計方法。

把p個變量X1,X2,…,Xp,記為一個p維的随機向量X=(X1,X2,…,Xp),其協方差陣為D(X)。考慮X的線性變換:

Z1=A1*X

Z2=A2*X

……

Zp=Ap*X,

這裡的X和A1、A2、…、Ap等都不妨看成向量形式。假如我們想用Z1來代替原來的p個變量,這就要求Z1盡可能多地反映原來p個變量的資訊。這裡“資訊”可以用Z1的方差Var(Z1)來表示,方差Var(Z1)越大,表示Z1包含的資訊越多。當然,這需要強加一些數學上的限制,否則Var(Z1)就可能是無限大了,這裡的限制是向量A1和它自己的轉置之積等于1,記為A1*Trans(A1)=1。就這樣:

         若存在滿足A1*Trans(A1)=1的A1,使得Var(Z1)最大,則稱Z1為為第一主成分,或第一主分量,Z1=A1*X。

如果第一主成分不足以代表原來p個變量的絕大部分資訊,我們就可以考慮X的第二個線性組合Z2=A2*X。此時,我們要求,已經展現在第一主成分Z1中的資訊不要出現在Z2中,即Z1和Z2的協方差Cov(Z1,Z2)=0。就這樣:

          在Cov(Z1,Z2)=0時,若存在滿足A2*Trans(A2)=1的A2,使得Var(Z2)最大,則稱Z2為為第二主成分,或第二主分量。

類似我們可以定義X的第三主成分,以緻第p主成分(當然,對p維的随機向量X來說,第p主成分就沒有必要了)。

2.直覺解釋

從代數上講,主成分就是p個原始變量的一些特殊的線性組合。

從幾何上講,這些線性組合是把由X1,X2,…,Xp構成的坐标系通過旋轉而産生的新坐标系。

3.求解

從上面的定義可知,求第一主成分Z1=A1*X的問題,就是求A1,使得在A1*Trans(A1)=1下,Var(Z1)達到最大,這是一個條件極值問題,可以用拉格朗日乘子法求解。

   Max Var(Z1)=Var(A1*X)

   s.t A1*Trans(A1)=1

運用拉格朗日乘子法,令L=Var(A1*X)-t(A1*Trans(A1)-1),接下來就是一階條件了,按下不表。

說說結果。求解以上條件極值問題,就是求X的協方差陣D(X)的特征值(就是拉格朗日乘子t)和特征向量(就是我們感興趣的A1、A2、…、Ap)。一個定理:

設X=(X1,X2,…,Xp)是p維的随機向量,其協方差陣為D(X),D(X)的特征值為t1>t2>…>tp,A1、A2、…、Ap為相應的機關正交特征向量,則X的第i主成分為Zi=Ai*X.

4.一些名詞

原總體X的總慣量(總方差):就是上面我們求出來的特征值之和,sum(t1,t2,…,tp)

貢獻率:單個特征值ti與總方差之比,稱為主成分Zi的貢獻率。同樣可以定義累計的貢獻率。

因子負荷量(因子載荷量):主成分Zi與原始變量Xi的相關系數。

5.計算機求解(SAS)

(在SAS系統中,主成分分析的程式步是princomp,因子分析的程式步是factor。是以可以知道主成分分析和因子分析畢竟不是一樣的東西,具體見因子分析的部分。)

這裡有一個資料,5個變量,id、x1身高、x2體重、x3胸圍、x4坐高,30個觀測值。我們想對x1身高、x2體重、x3胸圍、x4坐高做主成分分析。

data princomp;

  input id x1 x2 x3 x4  ;

  cards;

1 148 41 72 78  

2 139 34 71 76

3 160 49 77 86

4 149 36 67 79

5 159 45 80 86

6 142 31 66 76

7 153 43 76 83  

8 150 43 77 79

9 151 42 77 80

10 139 31 68 74

11 140 29 64 74

12 161 47 78 84

13 158 49 78 83

14 140 33 67 77

15 137 31 66 73

16 152 35 73 79

17 149 47 82 79

18 145 35 70 77

19 160 47 74 87

20 156 44 78 85

21 151 42 73 82

22 147 38 73 78

23 157 39 68 80

24 147 30 65 75

25 157 48 80 88

26 151 36 74 80

27 144 36 68 76

28 141 30 67 76

29 139 32 68 73

30 148 38 70 78

;

proc princomp;

  var x1 x2 x3 x4  ;

run;

結果解釋:

(1)結果首先有相關矩陣,可以看出這四個變量之間有較強的相關性。

                                          Correlation Matrix

                                      x1          x2          x3          x4

                          x1      1.0000      0.8632      0.7321      0.9205

                          x2      0.8632      1.0000      0.8965      0.8827

                          x3      0.7321      0.8965      1.0000      0.7829

                          x4      0.9205      0.8827      0.7829      1.0000

(2)然後是以上相關陣的特征值t(Eigenvalue,上面例子中的t)

                                         Eigenvalues of the Correlation Matrix

                                   Eigenvalue    Difference    Proportion    Cumulative

                        1    3.54109800    3.22771484        0.8853        0.8853

                        2    0.31338316    0.23397420        0.0783        0.9636

                        3    0.07940895    0.01329906        0.0199        0.9835

                        4    0.06610989                             0.0165        1.0000

從中可以看到,第一主成分的貢獻率就達到 0.8853。單個貢獻率就是某個特征值與總特征值的比,這裡0.8853=3.54109800/(3.54109800 +0.31338316 +0.07940895+0.06610989) .還有,前兩個主成分的累計是0.9636,是以用這兩個主成分就可以很好地概括這些資料。

(3)還有特征向量( Eigenvectors,我們例子中的A)

                                                    Eigenvectors

                                      Prin1         Prin2         Prin3         Prin4

                      x1      0.496966      -.543213      -.449627      0.505747

                      x2      0.514571      0.210246      -.462330      -.690844

                      x3      0.480901      0.724621      0.175177      0.461488

                      x4      0.506928      -.368294      0.743908      -.232343

我們可以由最大的兩個特征值對應的特征向量,寫出第一和第二主成分(結果中的Prin1和Prin2):

Z1=Prin1= 0.496966*X1+0.514571 *X2+0.480901*X3+0.506928*X4

Z2=Prin2= -0.543213 *X1+0.210246 *X2+0.724621*X3 -0.368294*X4

這樣我們就寫出了開頭那個線性組合。接下來說些因子分析,因子分析是主成分分析的推廣,稍複雜些。(待續)

轉載:http://johnthu.spaces.live.com/blog/cns!2053CD511E6D5B1E!270.entry

繼續閱讀