Excel在主成份分析法中的应用

2011-06-26 02:08陈俊华
四川林业科技 2011年5期
关键词:成份数组单元格

龚 静 陈俊华

(1.湖南环境生物职业技术学院,湖南 衡阳 421005;2.四川省林业科学研究院,四川 成都 610081)

主成份分析(principal components analysis,PCA)是将多个观测指标因子变化为少数几个新指标的一种多元统计方法[1],其分析结果可用于回归分析、聚类分析、神经网格分析等等。我国林业专家应用主成份分析法在多个领域[2~6]作了研究。主成份分析的算法中,最麻烦的是矩阵特征根的计算,目前在一些统计软件[7]中有集成模块,当然也可以通过编程来计算,但数据录入、修改不方便。Microsoft Excel能很好地解决这些问题。

Microsoft Excel是美国微软公司研制开发的用于个人财务分析与规划、公司营运管理与目标设定和薪水管理等的一个出色的电子表格软件,它不仅具有友好的界面、强大的数据计算,并且还具有统计分析功能。Excel进行数据计算与统计分析的一个显著特点是,它可以进行公式编辑和插人函数,而且具有连环链锁计算能力[8]。有关矩阵的特征根和特征向量的Excel算法,相关文献中也有报道[9~11],但对整个主成份分析的过程却不见系统报道。下面,笔者详细介绍如何在Excel 2003中建立数据进行主成份分析,以与搞林业工作的同仁们分享。

1 原始数据的录入及相关系数的计算

本文以参考文献[7]第11章“因子分析法”的数据为例,建立矩阵来进行主成份分析,以便与专业软件(SPSS)进行数据结果精度的比较。

在Excel2003中录入数据进行相关系数的计算,非常简单。步骤如下:

(1)打开 Microsoft Excel 2003,选择区域 A1:F9,输入原始数据(图1)。

图1 原始数据的录入

(2)相关系数矩阵的计算

单击“工具(T)”下拉菜单中的“数据分析(D)…”,在弹出的“数据分析”窗口中,选择“相关系数”,输入要计算数据的区域等选项,单击“确定”后,结果如图2所示。

图2 相关系数计算结果

2 Excel中矩阵的建立及命名

在Excel中,可以在一个单元格区域内通过逐个输入矩阵的各个元素来建立矩阵,还可以使用数组公式和数组常量更加方便地建立矩阵[12]。

(1)新建一个工作表,选择单元格区域A1:F6;

(2)输入公式 ={1,-0.557,-0.443,0.535,=0.614,0.107;……},即(1)中计算出来的相关系数矩阵。(在Excel的数组公式中,将矩阵元素用大括号{}括起来称为数组常量,其中不同列的元素用逗号隔开,不同行的元素用分号隔开[12]);

(3)同时按下Ctrl+Alt+Enter键,完成数组的输入,并在左上角框中将其命名为数组A,如图3所示。

3 特征根的计算

(1)选择单元格区域G1:L9,输入6阶单位矩阵并将其命名为I;

图3 矩阵的建立及命名

(2)在单元格 C7 中输入 MDETERM(A)[8]来计算矩阵A的行列式值,其结果为0.037248;

(3)预测矩阵A的特征值所在区间:

Gersgorin圆盘定理[13]认为,设对称方阵A=(aij)n×n,则A的每一个特征值必属于下述某个圆盘之中:

理论上A的特征值包含在区间[0,6)内。在区间[0,6)取若干个点作特征多项式f(λ)=det(A-λI)的“平滑散点图”,步骤为:

(1)在工作表Sheet1的单元格A8中输入0,按住Ctrl键,拖动鼠标直到单元格A68,在单元格B8中,输入工式=A8/10,同样拖动鼠标直到B68,即输入0,0.1,0.2,…(每隔 0.1 取一个值),在单元格C7中输入公式=MDETERM(A-B8*I),按Ctrl+Shift+Enter键,在C8中形成数组公式,则C8中的值0.037248为特征多项式f(λ)在λ=0的值;

(2)选定单元格C8,拖动鼠标直到C68,计算各特征根的值,可见有几次符号改变,而每一次符号改变就说明此附近有一特征根,当到2.3以后符号不再改变,说明2.3附近为A的最大特征根;

(3)选定单元格B8:C31(即2.3),作“XY散点图”的“平滑线散点图”类型曲线,见图4。从图4可以看出A的特征多项式与x轴有6个交点,还可以看出这6 个点分别落在区间[0,0.1],(0.1,0.25),(0.6,0.7),(0.9,1),(1.7,1.8),(2.2,2.3)。

图4 特征多项式f(λ)的平滑线散点图

(4)求A的全部特征根

1)选择工作表Sheet2里面的单元格A1:A6,即将这6个单元格作为求特征根的可变单元格;

2)在B1中输入公式=MDETERM(A-A1*I),按 Ctrl+Shift+Enter键,形成数组公式:{=MDETERM(A-A1*I)};

3)拖动B1到B6;

4)单击“工具”菜单中的“规划求解”命令,打开“规划求解参数”对话框(若没有这项,可单击“工具”菜单中的“加载宏(I)”,在弹出的窗口中将“规划求解”勾选上);

5)在“设置目标单元格(E)”中输入B1,单击“等于”栏中的“值为”输入0,在“可变单元格(B)”中,输入或选择单元格区域A1:A6;

6)单击“添加(A)”按钮,在“添加约束”对话框中添加条件:A1>=0,A1<=0.1;

7)单击“求解”按钮完成操作。此时单元格A1中的值:0.067662就是实对称矩阵A的第一个特征值;

8)重复步骤5)~7)(注意条件),这样就求出了全部特征根,如图5所示,这与文献[7]中用统计软件SPSS求出来的值非常接近(SPSS求出的6个值分 别 为 2.285,1.793,0.954,0.700,0.201,0.068)[7]。

图5 实对称矩阵A的全部特征值

4 求累计方差贡献率

方差贡献率的计算公式较为简单,例如,对于λ1=2.285,则方差贡献率为=2.285/6=38.09%,以此类推。计算出来的方差贡献率及累计方差贡献率见图5。

5 每个特征值对应的特征向量及因子负荷矩阵的求解

(1)特征向量的解法

对应于λ1的特征向量可由下面齐次方程组求出:

将矩阵A及λ的值代人方程组,令x6=1,用前面的5个方程联立求解,就可以求得相对于λ的特征向量,这样求特征向量问题就是求解多元一次线性方程组的问题。Excel解线性方程组的方法主要有逆矩阵法、迭代计算法以及规划求解法等。本文以逆矩阵法为例来说明如何求特征向量。

1)选定Sheet3中的区域A1-F6,输入公式=P-A(P为特征根形成的对角线矩阵),按下Ctrl+Shift+Enter键,计算矩阵λ-A;

2)选择区域A8:E12,输入公式=Minverse(A1:E5),按下Ctrl+Shift+Enter键,计算前面5个未知数形成的矩阵的逆矩阵;

3)在F8:F12中输入=-F1:F5,作为常数项(因为令x6=1);

4)矩阵相乘

选取区域 H8:H12,输入 =MMULT(A8:E12,F8:F12),按下Ctrl+Shift+Enter键,并在H13中输入1,求得方程的一组解;

5)对解向量进行标准化

在单元格I8中,输入公式=H8/SQRT(SUMSQ(MYMHMYM8:MYMHMYM13))(SUMSQ()函数为求平方和),拖动到I13得到特征向量的值;

将另外的λ代入方程组,求得其他特征根所对应的特征向量。

(2)因子负荷矩阵的求法

例如,对于 λ1=2.285,在 J8中输入 =SQRT(2.285)*I8,拖动至J13可求得λ1所对应的主成份因子负荷向量。同样求得其他特征根所对应的因子负荷向量,全部向量构成因子负荷矩阵。

6 结论

主成份分析法在林业中应用非常广泛[2~6]。目前有些专业统计软件,如SPSS、SAS等可以进行计算,但这些软件属于“傻瓜”型软件,其操作过程仿佛是在一个“暗箱”内进行的,对于使用者而言,可能对计算结果无法进行合理解释。本文利用Excel进行主成份的计算,使读者理解其计算过程,如果再结合SPSS进行计算结果的分析,就会感到理解透彻些。此外,作者写这篇文章的目的还为了提供一些Excel的基本操作,尤其是有关矩阵(数组)的建立及操作等。Excel计算精度控制方便,操作简单,且在各类计算机上随处可见,使用者众多[14-16],这也是写这篇文章的目的所在。

[1] 陈华豪,洪伟等.林业应用数理统计[M].辽宁:大连海运学院出版社,1988,8.第一版:243 ~251.

[2] 陈松河,郑清芳.黄甜竹笋用林丰产培育技术模式的研究[J].竹子研究汇刊,2001,20(1):61 ~67.

[3] 高永,孟海生,高国雄,等.吉兰泰盐湖引种樟子松的试验研究[J].内蒙古林学院学报(自然科学版),1999,21(2):12 ~18.

[4] 朱春云,赵越,刘霞,等.锦鸡儿等旱生树种抗旱生理的研究[J].干早区研究,1996,13(1):59 ~63.

[5] 谢会成,姜志林,叶镜中.麻栎光合作用的特性及其对CO2倍增的响应[J].南京林业大学学报(自然科学版),2002,26(4):67~70.

[6] 陈存及,梁一池,邱尔发,等.毛竹种源多性状综合选择的研究[J].林业科学,2001,37(1),Sp.:18 ~23.

[7] 刘大海,李宁,晁阳编著.SPSS15.0统计分析送入门到精通[M].清华大学出版社,北京,2008:298~317.

[8] 桂红义,樊荣,张建森,等.EXCE1 97中文版入门与提高[M].北京:清华大学出版社,1997.

[9] 杨明波,卢建立.Excel中矩阵的命名与特征值特征向量的计算[J].电脑知识与技术,2007(3):1295~1296.

[10] 曹永卿,吴宏斌.相关矩阵的特征值及特征向量的算法[J].湖南城建高等专科学校学报,2001,10(4):64~65.

[11] 邵荣.用Excel VBA进行矩阵特征值的数值计算[J].江南大学学报(自然科学版),2009,8(4):418 ~422.

[12] 卢秋根.中文版Office应用基础教程[M].上海:上海科学普及出版社,2005年9月第1版,151~152.

[13] 李庆杨,王能超,易大义.数值分析[M].4版.北京:清华大学出版社,2001:295~296.

[14] 陈彦光编著.基于Excel的地理数据分析[M],科学出版社,北京,2008.

[15] 陈俊华,慕长龙,朱志芳.Excel在物元模型及层次分析法(AHP)中的应用[J].四川林业科技,2009,30(5):58 ~62.

[16] 陈俊华,文吉富,王国良,向成华,等.Excel在计算群落生物多样性指数中的应用[J].四川林业科技,2009,30(3):88~90,60.

猜你喜欢
成份数组单元格
JAVA稀疏矩阵算法
流水账分类统计巧实现
JAVA玩转数学之二维数组排序
玩转方格
玩转方格
绩优指数成份变更与一周表现
两市主要成份指数中期成份股调整
浅谈Excel中常见统计个数函数的用法
Variational Mode Decomposition for Rotating Machinery Condition Monitoring Using Vibration Signals
Excel数组公式在林业多条件求和中的应用