由于
(2.5)
Z-Q:
X
所以有
vE(Z)=E(Q:
X)=Q:
E(X)=Q:
丛
var(Z)=QTvar(X)Q=A.
(2)主成分的总方差由于
tr(A)=tr(Q:
2Q)=tr(2QQ:
)=tr(习,
所以
PPPp
X旳-、;匚或二var(ZJ=7var(Xi),i=1i=1ii=1
其中匚ii是协方差阵工的第i个对角元素。
由此可以看出,主成分分析把p个原始
变量Xi,X2,…,Xp的总方差分解成了p个不相关变量乙乙,…,Zp的方差之和
p
称总方差中第i主成分Z的比例,i/v打为主成分乙的贡献率。
第一主成分
i4
乙的贡献率最大,表明它解释原始变量Xi,X2,,Xp的能力最强,而Z2Z,,Zp
的解释能力依次减弱。
主成分分析的目的就是为了减少变量的个数,因而一般不会使用所有的p个主成分,忽略一些较小方差的主成分,不会给总方差带来大的
mp
影响。
称前m个主成分的贡献率之和7'\/7为主成分乙,Z2,…,Zm的累积贡
7i=4
献率,它表明乙,Z2,…,Zm解释Xi,X2,,Xp的能力。
相对于P,通常取较小的m
使得累积贡献率达到一个较高的百分比(如80%-90%。
此时,乙,z2,…,Zm可
用来代替Xi,X2,…,Xp,达到降维的目的,而信息的损失却不多
(3)原始变量Xj与主成分乙之间的相关系数
由式(1.5)知
X=QZ
即
Xj=qjiZiqj2Z2•qjpZp,
所以,
cov(Xj,ZJ二cov(qjiZi,ZJ二qjii,j,i,=1,2,,p,
'(XjZ)
在实际应用中,通常只对Xj与乙的相关系数感兴趣。
(4)m个主成分对原始变量的贡献率
前面提到的累积贡献率这个概念度量了m个主成分乙,Z2,…,Zm从原始变量
X1,X2/,Xp中提取信息的多少,那么乙Z,…,Zm包含有Xjj=1,2/,p的多
少信息应该用什么指标来度量呢?
这个指标就是Xj与乙,Z2,…,Zm的复相关系数的平方,称为m个主成分乙±2,…,Zm对原始变量Xj的贡献率,记为'2「m,
结论及对该模型的评
由于q:
1q:
2,2p=1,故二》实际上是d'2「,’p的加权平均。
由式(1.10)〜式(1.11),可以得到乙,Z2,…,Zp对Xj的贡献率为
pp
(2.12)
汛..p八「2(Xj,Zi)八22/5=1.
7i=1
(5)原始变量对主成分的影响式(1.5)也可以写成
乙=徘X1+q2iX2+…+qpiXp,
称qji为第i主成分在第j个原始变量Xj上的载荷,它度量了Xj对乙的重要程度。
2.3从相关矩阵出发求主成分
当各变量的单位不完全相同,或虽单位相同,但变量间的数值大小相差较大时,直接从协方差阵工出发进行主成分分析就显得不妥。
为了使主成分分析能够均等地对待每一个原始变量,消除由于单位不同可能带来的影响,常常将原始变量作标准化处理,即令
j-1,2/,p.
(2.13)
显然,X*=(X;,X;,…,X;)T的方差矩阵就是X的相关矩阵R。
从相关矩阵R出发导出的主成分方法与从协方差艺出发导出的主成分方法完全类似,并且得到的主成分的一些行之更加简洁。
设■;-■;「-P-0为相关矩阵R的P个特征值,a;,a;,…,a*p为相应的单
位特征向量,且相互正交,则相应的p个主成分为
乙PTX,i=1,2,,P。
T
令Z=(乙乙,,Zp),Q=佝,a2,…,ap),于是
**-ry
Z=QX.
关于相关矩阵R的主成分有如下性质:
(1)E(Z)=0,var(Z)=A,其中A二diag(、,。
,-p).
p*
(2)二打二p.
i4
(3)变量X*与主成分Z*之间的相关系数为
P(Xj,Zi)=J^qji,j,i=12_,p.
(4)主成分Z;,Z;,…,Z;对X*的贡献率为
mm
22****2
「jim(Xj,Zi)二'1iqji・
i二1i=1
pp
(5)ji.卫=":
•(Xj,Zi)="'iqji=1.
yi二
2.4相关的R函数
与主成分分析有关的函数主要有以下一些:
1.princomp函数
作主成分分析最主要的函数是princomp()函数,其使用格式为
princomp(formula,data=NULL,subset,na.action,...)
其中formula是没有响应变量的公式(类似回归分析、方差分析,但无响应变量),data是数据框。
或者
princomp(x,cor=FALSE,scores=TRUE,covmat=NULL,
subset=rep(TRUE,nrow(as.matrix(x))),,)
其中x是用于主成分分析的数据,以数值矩阵或数据框的形式给出;cor是逻辑
变量,当cor=TRUE表示用样本的相关矩阵R作主成分分析,当cor=FALSE(默认值)表示用样本的协方差阵S作主成分分析;covmat是协方差阵,如果数据不用x提供,可由协方差阵提供。
2.summary函数
summary()函数的目的是提取主成分信息,其使用格式为
summary(object,loadings=FALSE,cutoff=0.1,...)
其中object是由princomp()得到的对象;loadings是逻辑变量,当loadings=TRUE表示显示loadings的内容,当loadings=FALSE则不显示。
3.loadings函数
Loadings()函数是显示主成分分析loadings的内容,该内容实际上是主成分对应的各列,即前面分析的正交矩阵Q
loadings(x)其中x是由函数princomp()得到的对象。
4.predict函数
predict()函数是预测主成分的值,其使用格式为
predict(object,newdata,...)
其中object是由princomp()得到的对象,newdata是由预测值构成的数据框,当newdata为默认值时,预测已有数据的主成分值。
5.screeplot函数
screeplot()函数是画出主成分的碎石图,其使用格式为
screeplot(x,npcs=min(10,length(x$sdev)),type=c(“barplot”,
”lines”),main=deparse(substitute(x)),,)
其中x是由princomp()得到的对象;npcs是画出的主成分的个数;type是描
述画出的碎石图的类型:
barplot是直方图类型,lines是直线图类型。
3数据模拟
表1某农业生态经济系统各区域单元的有关数据
序号
X1
X2
X3
X4
X5
X6
X7
X8
X9
1
363.912
0.352
16.101
192.11
295.34
26.724
18.492
2.231
26.262
2
141.503
1.684
24.301
1752.35
452.26
32.314
14.464
1.455
27.066
3
100.695
1.067
65.601
1181.54
270.12
18.266
0.162
7.474
12.489
4
143.739
1.336
33.205
1436.12
354.26
17.486
11.805
1.892
17.534
5
131.412
1.623
16.607
1405.09
586.59
40.683
14.401
0.303
22.932
6
68.337
2.032
76.204
1540.29
216.39
8.128
4.065
0.011
4.861
7
95.416
0.801
71.106
926.35
291.52
8.135
4.063
0.012
4.862
8
62.901
1.652
73.307
1501.24
225.25
18.352
2.645
0.034
3.201
9
86.624
0.841
68.904
897.36
196.37
16.861
5.176
0.055
6.167
10
91.394
0.812
66.502
911.24
226.51
18.279
5.643
0.076
4.477
11
76.912
0.858
50.302
103.52
217.09
19.793
4.881
0.001
6.165
12
51.274
1.041
64.609
968.33
181.38
4.005
4.066
0.015
5.402
13
68.831
0.836
62.804
957.14
194.04
9.110
4.484
0.002
5.790
14
77.301
0.623
60.102
824.37
188.09
19.409
5.721
5.055
8.413
15
76.948
1.022
68.001
1255.42
211.55
11.102
3.133
0.010
3.425
16
99.265
0.654
60.702
1251.03
220.91
4.383
4.615
0.011
5.593
17
118.505
0.661
63.304
1246.47
242.16
10.706
6.053
0.154
8.701
18
141.473
0.737
54.206
814.21
193.46
11.419
6.442
0.012
12.945
19
137.761
0.598
55.901
1124.05
228.44
9.521
7.881
0.069
12.654
20
117.612
1.245
54.503
805.67
175.23
18.106
5.789
0.048
8.461
21
122.781
0.731
49.102
1313.11
236.29
26.724
7.162
0.092
10.078
2
X1:
人口密度(人/km)
X2:
人均耕地面积(亩)
X9:
灌溉田占耕地面积之比(%)
做主成分分析,命名第一主成分为乙,第二主成分为乙,第三主成分为Z3,依次类推,当前m个主成分的累积贡献率达到80液以上,我们就说脑的大小与前m主成分有关。
并求解转化后的Zj与Xj之间的相关系数。
首先,用数据框的形式输入数据。
用princomp()作主成分分析,由前面
的分析,选择相关矩阵作主成分分析更合理。
因此,这里选择的参数是cor=TRUE最后用summary()列出主成分分析的值,这里选择loadings=TRUE。
以下是相
应的程序。
###用数据框的形式输入数据
iLylaEK-date..frejne(
X1-C(3I53.312,141.503,100.655,143_739,131337F95.416,
62.901,36-31.3甘㊁,76-65,831^7-301,7t,9^5,
9弓.265,US.505,141.473,137.761,117・612『丄22・73丄)・
X.2-C(0.352,1.634,1.067,1・33石『1.百23*2■03F”0■
1.652,0.541,0.312,0.S53,l_041r0-£36,0-623,
I.022f0.55^,0.661,0.737,0.593,1_245f0-731J,
X3=c(16.101,2^.301,£5・601,33.205f16.o07r76.20^,=工.g乞73.337,6S.&04,66.502,50.302,64.609^62.E04,60・102,fia.001r50.702,63.304r54.206r55-301r54.503,49.102)*
X.4=c(192.11,17S2.35,11B1.S4,5.436_12f140E_09,154D
925・35,1501・2$f39^.36,911-24r103・52f96B.SSfTEU.工斗"弓2叫*37#125S.42,1251.03.12^5.47,51^.21,113^.05,305.6^,1313・1:
L】*
X5=c(295.34r452.26,270,12,354.26r5S«-59,216-39,291.52,
225.25,156.37,226.El,217.09,151_3Sr134-04,1=S-09,
211.5S,220.91,242.16,193.46,228-^^,175,23.236.29)*
X6=c(26.724,32.31^,・266,17.436,40・EE3,E
1S.3S2.16.861,1S.279,19.793^_005,9.110,19^09,
II.102,4.353,10.706,11.419,9.521flB.106,26_124}FX7=c(15.45^,14.4€4,0.162f1^_.30Sr14.401f4.06Sf.063,
+&,176f■呂日1』4.0石石「弓・(E勺尸5•72:
]^
3.133,4.51S,6.0S3,6-442,7.SeifS.789,7.162>,
XB-c(2.231,1.4S5f7.4^4rl.392f0.303f0.011,0.012^0.034f0.05S.D.075,0.DOI,0,015r0-002,S.055,0.010,0,011,0.154,0・O.0E9f。
・04日「0•092》.
K9=c(2€.262,27丄£・4EB,17・53勺尸.922*电・2占士#4.S52,S.201,64167r4.f.153r5.403f5_730fS.413,3.4i£fS.S53f5.?
Gl,12^4£fi*_£=4f
)
###作主成分分析,并显示分析结果
>rrydatar<-priEcontp(rydat^i^匚口二*T真匚匡)
>3'jmar7(rydata+prrLc&dirgs-rRUE)
CcirpL6
Cc^rp*2
Coir.p*3
Coir.p.4
1.445507€
1.021270S
0^1233526
3.232165S
0.1153BS2
0.05€3e027
0.75006^3
0・£659561
D.92233634
Co却*9
Q・177^06076
EioportionC'^AllA匸丄F亡
ufVariance
F工右匚moon
0.021^0153
0,97375677
0*01270993
0.?
9146670
0*005036279
0.?
9650297S
0.003^97022
1.000-300000
Camp.5
o.senooi
0.035D1B9
:
u9573552
Cdilp.E
Q・12900^30
0.335?
1^?
7
ZirjiccfcOrr.pciZLeTit^:
Coirp・1St^nd^xdd«viiticn2415S
fxopcxtioz:
q£Varia^C't0*51n9D2亡Pxopartiozi0・51^932
St^rderdd^vietion
Con.p・1
Coir;p*2
Cozrp・3
Comph4
Cazrp*5
CCTEJ:
H岳
匚W-Ft7
CCTRP・S
uOIT-P+3
XI
0.342
-S3S8
-0・37S
-0,355
0・312
0.ss?
0.113
-0*233
X2
0.€14
0.155
-0.7C1
-0.110
X3
-0.446
a.206
0.4E7
-0.203
0.€92
601
一0・=93
0.310
0・295
^0.139
XS
c.sve
0・307
0+395
-0・503
0.550
X6
0・379
0.124
■D.1J2
0.6:
0
0.154
0.w
兀寸
0・452
Y・246
一0・14S
7.241
-0・7^7
0・235
C,e50
-Q.Z31
'0.221
'0,136
-q*2q§
0.532
a.613
第一主成分的贡献率为51.8%,第二主成分的贡献率为23.2%,第三主成分的贡献率为11.6%。
前三个主成分的累积贡献率为86.6%,另六个主成分可舍去,达到降维的目的。
由于在summary函数的参数中选取了loadings=TRUE,因此列出了loadings(载荷)的内容,它实际上是主成分对应于原始变量X1,X2…X9
的系数,即前面介绍的矩阵Q。
因此得到前三个主成分:
Z;=0.342X;-0.446X;0.376X50.379x60.432x70.446x9,
Z;—0.368X;0.614X;0.601X;0.307X50.124X6,
Z3-0.122X6-0.246X70.950x8.
从第一主成分中,可看出农业生态经济与人口密度,人均粮食产量,经济作物占农作物播种面积比例,耕地占土地面积比率,灌溉田占耕地面积之比,成正比,即人口密度,人均粮食产量,经济作物占农作物播种面积比例,耕地占土地面积比率,灌溉田占耕地面积之比越大,生态农业经济越好,第一成分的值也就越大。
可以称第一主成分为经济因子。
第二主成分是人均耕地面积,农民人均纯收入,人均粮食产量,经济作物占农作物播种面积比例,第二主成分值越大,表明该地区人民生活水平越高,第二主成分值越小,表明该地区人民生活水平越低;因此,可以称第二主成分为水平因子。
接下来看一下各样本的主成分的值。
###作预测
Ccir.p’1
Cortp・2
Ccmp.3
Cornp*4
Corrp*5
S.0341030
-3.97«5E642
亠0
-LSK'3256
-0.455754^3
-Q.S9*******
〔务]
4,3227450
2.339^5655
0
.0犷EE90百
-0,377«CD44
-(3J
-0,4075553
D・324227^3
3
79^^2535
-0.13620S7S
-€.080557730
2.2013703
0・92^5^446
□
.16651165
-0,22333335
-0.19^760360
.9909519
2-3^300417
'0
.52043790
1.109^^105
0.&