实例说明利用Excel进行主成分分析.docx
《实例说明利用Excel进行主成分分析.docx》由会员分享,可在线阅读,更多相关《实例说明利用Excel进行主成分分析.docx(16页珍藏版)》请在冰豆网上搜索。
实例说明利用Excel进行主成分分析
方法:
1利用Excel2000进行主成分分析
第一步,录入数据,并对进行标准化。
【例】一组古生物腕足动物贝壳标本的两个变量:
长度和宽度。
图1原始数据和标准化数据及其均值、方差
(取自张超、杨秉庚《计量地理学基础》)
计算的详细过程如下:
⑴将原始数据绘成散点图(图2)。
主持分分析原则上要求数据具有线性相关趋势一—如果数据之间不相关(即正交),则没有必要进行主成分分析,因为主成分分析的目的就是用正交的变量代替原来非正交的变量;如果原始数据之间为非线性关系,则有必要对数据进行线性转换,否则效果不佳。
从图2可见,原始数据具有线性相关趋势,且测定系
数氏=,相应地,相关系数R=。
⑵对数据进行标准化。
标准化的数学公式为
*XijXj
j
这里假定按列标准化,式中
_1n:
n_2,
Xj—xij,ij.(xijXj)■.Var(xij)
分别为第j列数据的均值和标准差,
niiVii
xij为第i行(即第i个样本)、第j列(即第j个变
量)的数据,xij为相应于xij的标准化数据,n25为样本数目
原始数据的散点图y=0.7686X+2.3174
R2=0.4979
图2原始数据的散点图
标准化数据的散点图y=0.7056X+2E-16
图3标准化数据的散点图
对数据标准化的具体步骤如下:
①求出各列数据的均值,命令为average,语法
为:
average(起始单元格:
终止单元格)。
如图1所示,在单元格B27中输入
“=AVERAGE(B1B26)”,确定或回车,即得第一列数据的均值X110.88;然后抓住单元
格B27的右下角(光标的十字变细)右拖至C27,便可自动生成第二列数据的均值
x210.68
2求各列数据的方差。
命令为varp,语法同均值。
如图1所示,在单元格B28中输入
“=VARP(B2:
B26)”,确定或回车,可得第一列数据的方差Var(x1)19.4656,右拖至
C28生成第二列数据的方差Var(x2)23.0976。
3求各列数据的标准差。
将方差开方便得标准差。
也可利用命令stdevp直接生成标
准差,语法和操作方法同均值、方差,不赘述。
4标准化计算。
如图1所示,在单元格D2中输入“=(B2-$B$27)/$B$29”,回车可得
第一列第一个数据“3”的标准化数值,然后按住单元格D2的右下角下拖至D26,便会生
成第一列数据的全部标准化数值;按照单元格D2的右下角右拖至E2,就能生成第二列第
一个数据“2”的标准化数据,抓住单元格E2的右下角下拖至E26便会生成第二列数据的
全部标准化数值。
5作标准化数据的散点图(图3)。
可以看出,点列的总体趋势没有变换,两种数据
的相关系数与标准化以前完全相同。
但回归模型的截距近似为0,即有a0,斜率等于
相关系数,即有bR。
⑶求标准化数据的相关系数矩阵或协方差矩阵。
求相关系数矩阵的方法是:
沿着“工具
(T)”-“数据分析(P)”的路径打开“分析工具(A)”选项框(图4),确定,弹出
“相关系数”对话框(图5),在“输入区域”的空白栏中输入标准化数据范围,并以单
元格G1为输出区域,具体操作方法类似于回归分析。
确定,即会在输出区域给出相关
图4分析工具选项框
图5相关系数对话框
系数矩阵的下三角即对角线部分,由于系对称矩阵,上三角的数值与下三角相等,故未给
出(图6),可以通过“拷贝一一转置一一粘帖”的方式补充空白部分。
图6标准化数据的相关系数和协方差
求协方差的方法是在“分析工具”选项框中选择“协方差”(图7),弹出“协方
差”选项框(图8),具体设置与“相关系数”类似,不赘述。
结果见图6,可以看出,对于标准化数据而言,协方差矩阵与相关系数矩阵完全一样。
因此,二者任取其一即可。
图7在分析工具选项框中选择“协方差”
图8协方差选项框
⑷计算特征根。
我们已经得到相关系数矩阵为
C0.7056
0.7056
1
而二阶单位矩阵为
1
0
1
0.7056
1
0.7056
0
1
0.7056
1
0.7056
1
0,我们有
按照行列式化为代数式的规则可得
相关系数矩阵的两个特征根。
0.7056
0.7056在系数矩阵IC中,用第一行加第二行,化为
0.7056
0
0.7056
0
10
20
由此得12,令1
1,则有2
1,于是得基础解系
1
0.7071
1,
单位化为ei
1
0.7071
单位化的公式为ei.
i(i
1,2)。
i厂
22
.1
2
完全类似,将2
,弋入矩阵方程
(IC)
0,得到
0.7056
0.7056
10
0.7056
0.7056
20
用系数矩阵的第二行减去第-
行,化为
0.7056
0.7056
10
0
0
20
于是得到12,取
11,则有
21,因此得基础解系为
1
0.7071
2,
单位化为62
1
0.7071
⑹求对角阵。
首先建立标准正交矩阵
可知
这里ei、e2便是标准正交向量。
是mmult(矩阵1的单元格范围,矩阵2的单元格范围)。
例如,用矩阵PT与矩阵C相
乘,首先选择一个输出区域如G1:
H2,然后输入“=mmult(A1:
B2,C1:
D2)”,然后按下
Ctrl+Shift+Enter”键(图9),即可给出
再用乘得的结果与P阵相乘,便得对角矩阵
如果希望一步到位也不难,选定输出区域如C3:
D4,然后输入
“=mmult(mmult(A1:
B2,C1:
D2),E1:
F2)”(图10),同时按下“Ctrl+Shift+Enter”
键,立即得到结果(图11)。
显然,对角矩阵对角线的数值恰是相关系数矩阵的特征值。
SUNT
A
DE
F
G|H
1
0.707107
0,"0710?
;l.OOdOJO
0.7C5603;0.707107
J707107
2
0.707107
-0.707107!
0.7056J3
L000000)0.707107
■707107
1
图9矩阵乘法示例
图10矩阵连乘的命令与语法
至此,标准化的原始变量X与主成分之间Z之间可以表作
1
0.7056为
1.7056
0
X1x2
Z1Z2小
0.7056
1x2
0
0.2944
Z2
显然Z1与Z2之间正交。
图11乘法结果:
对角矩阵
1.7056,第二特征根为
⑺根据特征根计算累计方差贡献率。
现已求得第一特征根为
目(注意前面的n=25为样本数目)。
比较图6或图10中给出的相关系数矩阵C与图11
中给出的对角矩阵D可以看出,Tr.(C)=1+1=2,Tr.(D)=+=2,即有Tr.(C)=Tr.(D),可见
将相关系数亦即协方差矩阵转换为对角矩阵以后,矩阵的迹(trace,即对角线元素之和)没有改变,这意味着将原始变量化为主成分以后,系统的信息量没有减少。
现在问题
是,如果我们只取一个主成分代表原来的两个变量,能反映原始变量的多少信息?
这个问
题可以借助相关系数矩阵的特征根来判断。
利用
Excel
容易算出,第一特征根占特征根总
和即矩阵维数的
%(见下表),即有
特征根累计值
百分比
累计百分比
%
%
2
%
%
也就是说:
1:
1/m1.7056/2
85.28%
2:
2/m
0.2944/m
14.72%
12
:
2,(12)/m2/2100%
这表明,如果仅取第一个主成分,可以反映原来数据%勺信息一一换言之,舍弃第二个主
成分,原来数据的信息仅仅损失%但分析变量的自由度却减少一个,整个分析将会显得更加简明。
⑻计算主成分载荷。
根据公式j,jej,容易算出
11.70560.70710.9235
0.70710.9235
0.70710.3837
2029440.70710.3837
⑼计算公因子方差和方差贡献。
根据上述计算结果可以比较公因子方差和方差贡献。
再考虑全部的两个主成分的时候,对应于1和2的公因子方差分别为
V1ij20.923520.383721
j
222
V2ij0.92352(0.3837)21
j
对应于第一主成分乙和第二主成分Z2的方差贡献分别为
CV1ij0.923520.923521.7056
22CV2ij0.38372(0.3837)20.2944
i
可以看出(图12):
第一,方差贡献等于对应主成分的特征根,即有
CVjj
第二,公因子方差相等或彼此接近,即有
V1V2
第一,公因子方差之和等于方差贡献之和,即有
ViCVjm2
ij
第一个规律是我们决定提取主成分数目的判据与之一,第二个规律是我们判断提取主成分
数目是否合适的判据之一,第三个规律是我们判断提取主成分后是否损失信息的判据之
一。
去掉次要的主成分以后,上述规律理当仍然满足。
这时如果第二个规律不满足,就意
味着主成分的提取是不合适的。
此外,上述规律也是我们检验计算结果是否正确的判据之
图12公因子方差、方差贡献的计算结果及其与特征根的贡献
⑽计算主成分得分。
根据主成分与原始变量的关系,应有
ZPTX
对于本例而言,式中
XPZ
X
x1
z1e11
e12
0.7071
0.7071
1,Z
z1,Pe1e2e11
x2
z2e21
e22
0.7071
0.7071
或者
这里e1
T
e11e12
e21e22T为前面计算的标准化特征向量。
于是有
z10.70710.7071x1
z20.70710.7071x2
化为代数形式便是
ZTXTP
图13计算特征向量的公式及语法
图14计算主成分得分
根据这个式子,利用Excel计算主成分得分的步骤如下:
1将特征向量复制到标准化数据的附近;
2选中一个与标准化数据占据范围一样大小的数值区域(如G2:
H26);
3输入如下计算公式“=mmult(标准化数据的范围,特征向量的范围)”,在本例中就是
“=MMULT(B2:
C26,E2:
F3)”(图13);
4同时按下“Ctrl+Shift+Enter”键。
5计算主成分得分的均值和方差,可以发现,均值为0(由于误差之故,约等于0),方差等于特征根。
6最后,可以对主成分得分进行标准化。
已知主成分得分的均值为0,我们不按总体方差
进行标准化,而按样本方差进行标准化。
图15主成分得分的标准化结果
样本方差的计算公式为
相应地,标准差为
Var(Xj)
标准化公式同前面给出的一样。
结果见表15。
注意,这里之所以按样本方差进行标准化,
主要目的是为了与SPSS的计算结果进行比较。
分别以Z1、Z2为坐标轴,将主成分得分(包括标准化的得分)点列标绘于坐标图中,可以发现,点列分布没有任何趋势:
回归结果表明,回归系数和相关系数均为零,即有
a0,b0,R0(图16,图17)。
这从几何图形上显示:
主成分之间是正交的,即有COS0(试将图16、图17与图2、图3对比)
主成分得分的空间分布
1.500000
1.0000004-
分
得
分
成
主-3.00C
*0.500000
y=-7E-17x-2E-16R2=2E-32
+-1.000000
1.500000
第一主成分得分
图16主成分得分的相关系数为零
1.5
*•1
*0.5
i♦_
•y=-2E-16x-4E-17
R2=3E-32
♦
■
•♦
♦*J*
3-2-1电0.5(
•
-1
♦
-1.5
♦♦
I*123
・•
主成分得分的空间分布(标准化)
2.5
第一主成分得分
分得分成主一一第
图17主成分得分的相关系数为零(标准化)
最后可以验证因子载荷即为(标准化)原始数据与主成分得分之间的相关系数,容易
算出
(x1,z1)Correl(x1,z1)0.9235,
(X2,zjCorrel(X2,Zi)0.9235,
(x-i,z2)Correl(x1,z2)0.3837,
4
1C
3
♦
2
:
X1
2-1J
*123
♦
图表标题x2-z1
z1=1.206x2-3E-16
R2=0.8528
•zi得分
—线性(zi得分)
-3
图19X2与zi的关系及其回归方程
图表标题x1-z2
=0.2082X1-1E-16
R=0.1472
*z2得分
—线性(z2得分)
图20X!
与Z2的关系及其回归方程
4*•1
1
■
•
.0.5
0^
2-1广(
23
-0.5
♦
4A-
♦
■
-1*
—4-口
图表标题x2-z2
*z2得分
—线性(z2得分)
z2=-0.2082x2-2E-16
R=0.1472
图21X2与Z2的关系及其回归方程
回归方程为
z11.206x1
z-i1.206x2
Z20.2082x1
z20.2082x2
方程的系数恰是以下矩阵的元素
0.70710.707110.70561.20604
0.70710.70710.705610.20817