備忘錄之主成分分析
//這個(gè)暑期小學(xué)期,跟管理技術(shù)系的同學(xué)上營(yíng)銷數(shù)據(jù)分析。這門選修,主要是為湊學(xué)分了,偶爾也在課程bbs發(fā)些貼,權(quán)當(dāng)備忘錄了。這個(gè)主成分分析,主要來(lái)自高惠璇老師的兩本教材,《應(yīng)用多元統(tǒng)計(jì)分析》(北京大學(xué)出版社,2005)和《實(shí)用統(tǒng)計(jì)方法與SAS系統(tǒng)》(北京大學(xué)出版社,2001)。這個(gè)貼就發(fā)在學(xué)院bbs上,其他ip登不上,貼過(guò)來(lái)。在記事本上寫的,像Z1這樣的標(biāo)記就是Z加一個(gè)下標(biāo)1。
在實(shí)際問(wèn)題中,如果變量個(gè)數(shù)太多:
1.變量彼此存在一定的相關(guān)性,因而觀測(cè)到的數(shù)據(jù)在一定程度上反映的信息有所重疊(多重共線性);
2.在高維空間中研究樣本的分布規(guī)律比較復(fù)雜,變量太多增加分析問(wèn)題的復(fù)雜性。
我們希望:
1.用較少的綜合變量來(lái)代替原來(lái)較多的變量(降維,減少維度);
2.這幾個(gè)綜合變量能夠盡可能多地反映原來(lái)變量的信息;
3.這幾個(gè)綜合變量彼此互不相關(guān)。
主成分分析、因子分析、典型相關(guān)分析和偏最小二乘回歸等統(tǒng)計(jì)方法就是以上降維思想的體現(xiàn)。
一、主成分分析
1.定義
這里說(shuō)的主成分分析,又稱主分量分析、主軸分析,是將多個(gè)指標(biāo)(變量)化為少數(shù)幾個(gè)綜合指標(biāo)的一種統(tǒng)計(jì)方法。
把p個(gè)變量X1,X2,…,Xp,記為一個(gè)p維的隨機(jī)向量X=(X1,X2,…,Xp),其協(xié)方差陣為D(X)。考慮X的線性變換:
Z1=A1*X
Z2=A2*X
……
Zp=Ap*X,
這里的X和A1、A2、…、Ap等都不妨看成向量形式。假如我們想用Z1來(lái)代替原來(lái)的p個(gè)變量,這就要求Z1盡可能多地反映原來(lái)p個(gè)變量的信息。這里“信息”可以用Z1的方差Var(Z1)來(lái)表示,方差Var(Z1)越大,表示Z1包含的信息越多。當(dāng)然,這需要強(qiáng)加一些數(shù)學(xué)上的限制,否則Var(Z1)就可能是無(wú)限大了,這里的限制是向量A1和它自己的轉(zhuǎn)置之積等于1,記為A1*Trans(A1)=1。就這樣:
???????? 若存在滿足A1*Trans(A1)=1的A1,使得Var(Z1)最大,則稱Z1為為第一主成分,或第一主分量,Z1=A1*X。
如果第一主成分不足以代表原來(lái)p個(gè)變量的絕大部分信息,我們就可以考慮X的第二個(gè)線性組合Z2=A2*X。此時(shí),我們要求,已經(jīng)體現(xiàn)在第一主成分Z1中的信息不要出現(xiàn)在Z2中,即Z1和Z2的協(xié)方差Cov(Z1,Z2)=0。就這樣:
????????? 在Cov(Z1,Z2)=0時(shí),若存在滿足A2*Trans(A2)=1的A2,使得Var(Z2)最大,則稱Z2為為第二主成分,或第二主分量。
類似我們可以定義X的第三主成分,以致第p主成分(當(dāng)然,對(duì)p維的隨機(jī)向量X來(lái)說(shuō),第p主成分就沒(méi)有必要了)。
2.直觀解釋
從代數(shù)上講,主成分就是p個(gè)原始變量的一些特殊的線性組合。
從幾何上講,這些線性組合是把由X1,X2,…,Xp構(gòu)成的坐標(biāo)系通過(guò)旋轉(zhuǎn)而產(chǎn)生的新坐標(biāo)系。
3.求解
從上面的定義可知,求第一主成分Z1=A1*X的問(wèn)題,就是求A1,使得在A1*Trans(A1)=1下,Var(Z1)達(dá)到最大,這是一個(gè)條件極值問(wèn)題,可以用拉格朗日乘子法求解。
?? Max Var(Z1)=Var(A1*X)
?? s.t A1*Trans(A1)=1
運(yùn)用拉格朗日乘子法,令L=Var(A1*X)-t(A1*Trans(A1)-1),接下來(lái)就是一階條件了,按下不表。
說(shuō)說(shuō)結(jié)果。求解以上條件極值問(wèn)題,就是求X的協(xié)方差陣D(X)的特征值(就是拉格朗日乘子t)和特征向量(就是我們感興趣的A1、A2、…、Ap)。一個(gè)定理:
設(shè)X=(X1,X2,…,Xp)是p維的隨機(jī)向量,其協(xié)方差陣為D(X),D(X)的特征值為t1>t2>…>tp,A1、A2、…、Ap為相應(yīng)的單位正交特征向量,則X的第i主成分為Zi=Ai*X.
4.一些名詞
原總體X的總慣量(總方差):就是上面我們求出來(lái)的特征值之和,sum(t1,t2,…,tp)
貢獻(xiàn)率:單個(gè)特征值ti與總方差之比,稱為主成分Zi的貢獻(xiàn)率。同樣可以定義累計(jì)的貢獻(xiàn)率。
因子負(fù)荷量(因子載荷量):主成分Zi與原始變量Xi的相關(guān)系數(shù)。
5.計(jì)算機(jī)求解(SAS)
(在SAS系統(tǒng)中,主成分分析的程序步是princomp,因子分析的程序步是factor。所以可以知道主成分分析和因子分析畢竟不是一樣的東西,具體見(jiàn)因子分析的部分。)
這里有一個(gè)數(shù)據(jù),5個(gè)變量,id、x1身高、x2體重、x3胸圍、x4坐高,30個(gè)觀測(cè)值。我們想對(duì)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;
結(jié)果解釋:
(1)結(jié)果首先有相關(guān)矩陣,可以看出這四個(gè)變量之間有較強(qiáng)的相關(guān)性。
????????????????????????????????????????? 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)然后是以上相關(guān)陣的特征值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
從中可以看到,第一主成分的貢獻(xiàn)率就達(dá)到 0.8853。單個(gè)貢獻(xiàn)率就是某個(gè)特征值與總特征值的比,這里0.8853=3.54109800/(3.54109800 +0.31338316 +0.07940895+0.06610989) .還有,前兩個(gè)主成分的累計(jì)是0.9636,所以用這兩個(gè)主成分就可以很好地概括這些數(shù)據(jù)。
(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
我們可以由最大的兩個(gè)特征值對(duì)應(yīng)的特征向量,寫出第一和第二主成分(結(jié)果中的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