《利用Excel进行主成分分析》由会员分享,可在线阅读,更多相关《利用Excel进行主成分分析(21页珍藏版)》请在金锄头文库上搜索。
1、1利用Excel2000进行主成分分析第一步,录入数据,并对进行标准化。【例】一组古生物腕足动物贝壳标本的两个变量:长度和宽度。ABCDE1样本编号长度壯宽度出州标准化/肥标准化好2132-1. 786045-1.80607732410-1.559389-0.1414904365T. 106078-L 1818575468-k 106078-0. 55763765610T. 106078-0.1414907672-0.879423-1.80607787713-0.8794230. 4827309889-0.652768-0. 34956310995-0.426112-1.18185711109
2、8-0.426112-0. 5576371211914-0. 4261120. 6908041312107-0.199457-0. 7657101413111260271990. 274657151412100. 253854-0.141490161512110. 2538540. 06658317161360. 480509-0. 973784181713140. 4805090. 690804191813150. 4805090. 898877201913170. 4805091.31502421201470. 707165-0. 765710222115130. 9338200. 482
3、73023221713L3871310. 48273024231717L3871311.31502425241819L6137871.731171262520202.0670971.93924427均值10.8810. 680. 000000 0. 00000023力差19, 4656023. 097601 129标准差4. 411984. 8060011图1原始数据和标准化数据及其均值、方差(取自张超、杨秉庚计量地理学基础)计算的详细过程如下:将原始数据绘成散点图(图2)。主持分分析原则上要求数据具有线性相关趋势如果数据之间不相关(即正交),则没有必要进行主成分分析,因为主成分分析的目的 就
4、是用正交的变量代替原来非正交的变量;如果原始数据之间为非线性关系,则有必要对 数据进行线性转换,否则效果不佳。从图2可见,原始数据具有线性相关趋势,且测定系数R2=0.4979,相应地,相关系数 R=0.7056。对数据进行标准化。标准化的数学公式为*Xij - Xj这里假定按列标准化,式中ijc jn1百XijXij ,n i 二-Var (Xj)分别为第j列数据的均值和标准差,Xij为第i行(即第i个样本)、第j列(即第j个变度 宽原始 数据的 散点图 y = 0.7686X + 2.31742R = 0.4979图2原始数据的散点图图3标准化数据的散点图量)的数据,x*为相应于Xj的标准
5、化数据,n二25为样本数目#对数据标准化的具体步骤如下:求出各列数据的均值,命令为average,语法为:average(起始单元格:终止单元格)。如图1所示,在单元格B27中输入“ =AVERAGE(B1 :B26)”,确定或回车,即得第一列数据的均值x, =10.88 ;然后抓住单元格B27的右下角(光标的十字变细)右拖至 C27,便可自动生成第二列数据的均值X2 二 10.68。 求各列数据的方差。命令为varp,语法同均值。如图1所示,在单元格 B28中输入“ =VARP(B2:B26) ”,确定或回车,可得第一列数据的方差Var (x1) =19.4656,右拖至C28生成第二列数据
6、的方差 Var (x2 ) = 23.0976。 求各列数据的标准差。将方差开方便得标准差。也可利用命令 stdevp直接生成标准 差,语法和操作方法同均值、方差,不赘述。 标准化计算。如图1所示,在单元格 D2中输入“ =(B2-$B$27)/$B$29 ”,回车可得第一列第一个数据“3”的标准化数值-1.786045,然后按住单元格D2的右下角下拖至D26,便会生成第一列数据的全部标准化数值;按照单元格D2的右下角右拖至 E2,就能生成第二列第一个数据“2 ”的标准化数据-1.806077,抓住单元格E2的右下角下拖至E26便会生成第二列数据的全部标准化数值。 作标准化数据的散点图(图3)
7、。可以看出,点列的总体趋势没有变换,两种数据的相关系数与标准化以前完全相同。但回归模型的截距近似为0,即有a0 ,斜率等于相关系数,即有b = R。求标准化数据的相关系数矩阵或协方差矩阵。求相关系数矩阵的方法是:沿着“工具(T)” 一 “数据分析(D) ”的路径打开“分析工具(A )”选项框(图4),确定,弹 出“相关系数”对话框(图5),在“输入区域”的空白栏中输入标准化数据范围,并以 单元格G1为输出区域,具体操作方法类似于回归分析。确定,即会在输出区域给出相关图4分析工具选项框图5相关系数对话框系数矩阵的下三角即对角线部分,由于系对称矩阵,上三角的数值与下三角相等,故未给 出(图6),可
8、以通过“拷贝一一转置一一粘帖”的方式补充空白部分。GHIJKI L.相关系数协力差列1列2列1列2列11列11列20. 7056031列20. 7056031图6 标准化数据的相关系数和协方差求协方差的方法是在“分析工具”选项框中选择“协方差”(图7),弹出“协方差”选项框(图8),具体设置与“相关系数”类似,不赘述。结果见 图6,可以看出, 对于标准化数据而言,协方差矩阵与相关系数矩阵完全一样。因此,二者任取其一即可。图7在分析工具选项框中选择“协方差”图8协方差选项框计算特征根。我们已经得到相关系数矩阵为C =| 0.70560.70561而二阶单位矩阵为0【1于是根据公式det( I _
9、 C ) = 0,我们有1010.7056九-1-0.7056=0010.70561-0.7056丸-1按照行列式化为代数式的规则可得_ 2 2 _ 2 _(-1)0.7056-2、 0.5021 =0根据一元二次方程的求根公式,当b2 _4ac _ 0时,我们有-b 二 i b - 4 acZ =2a据此解得=1.7056 ,匕= 0.2944 (对于本例,显然= 1 R ,匕=1-只)。这便是相关系数矩阵的两个特征根。求标准正交向量。将代入矩阵方程0.7056-0.7056|-0.70560.7056在系数矩阵I -C中,用第一行加第二行,化为2I o o_0.7056i 0由此得=-2,
10、令:=1,则有S-0.70560I I。=1,于是得基础解系单位化为0.7071=0.7071单位化的公式为(i =1,2 )。完全类似,将2代入矩阵方程(I -C)宇-0,得到1-0.7056|-0.7056用系数矩阵的第二行减去第一行,化为-0.7056-0.7056- 201-0.7056-0.70560 071 IJ o o-于是得到:=7;,取匚=1,则有,因此得基础解系为一1 _ 0.7071 2二,单位化为e2 =卜1|L_ 0.7071这里e e2便是标准正交向量。求对角阵。首先建立标准正交矩阵P,即有0.70710.7071 P =e1 e2 0.7071-0.7071该矩阵
11、的一个特殊性质便是PT =PA,即矩阵的转置等于矩阵的逆。根据D = PTCP ,可知0.70710.707110.70560.70710.70711.705600.7071-0.70710.705610.7071-0.707100.2934下面说明一下利用 Excel进行矩阵乘法运算的方法。矩阵乘法的命令为mmult,语法是mmult (矩阵1的单元格范围,矩阵 2的单元格范围)。例如,用矩阵PT与矩阵C相乘, 首先选择一个输出区域如G1:H2 ,然后输入“ =mmult(A1:B2,C1:D2) ” ,然后按下“ Ctrl+Shift+Enter ”键(图 9),即可给出1.206044
12、1.2060440.20817 -0.20817再用乘得的结果与 P阵相乘,便得对角矩阵1.705603000.294397如果希望一步到位也不难,选定输出区域如 C3:D4 ,然后输入 “ =mmult(mmult(A1:B2,C1:D2),E1:F2) ” (图 10),同时按下“ Ctrl+Shift+Enter ”键,立 即得到结果(图11)。显然,对角矩阵对角线的数值恰是相关系数矩阵的特征值。ABCDEFGH10. 7071070. 707107:1.0000000. 705603:0. 7071070.707107=nmult(Al:E2,Cl:D2)20. 707107-0.70
13、7107:0.7055031. 000000;0. 707107-0.707107图9矩阵乘法示例567S9101丄121314MMULTArraylCAI :B2, Cl D刃J= 1 23604376694426ArrayeEl:F2V| = 0.7071057811365至此,标准化的原始变量x与主成分之间z之间可以表作X2 _0.70560.7056X!就1_X21 .7056 厂00 pj0.2944 役一SW、7 二=miDult (mmult (Al :62, Cl :D2) a El:F2)AII BC DE F16 707107707107L 0000000. 7056030. 707107CL 707107;20. 707107-0. 7071076 7056031.0000000. 707107-0. 707107:3