基于Excel link主成分分析的水质评价方法

所属栏目:环境法论文 发布日期:2011-09-13 08:14 热度:

  摘要:水质评价的主成分分析涉及十分复杂的矩阵运算和评价成果图的制作,本文在Excel平台上应用Excellink插件,给出了实现了水质评价的主成分分析计算程序,并与文献[1]所应用的SPSS软件进行了比较,指出了本程序的优越性。
  关键词:Excellink,Matlab,主成分分析
  
  水质评价是多变量综合作用的结果,通常需要采用多元统计方法进行分析。近年来,主成分分析在水质评价中的应用十分广泛[1-2]。这种方法的实现往往比较复杂,其数据对象通常是矩阵和向量,具体计算步聚涉及到矩阵的乘积、转置、求逆等,过去一般采用Fortran、Basic和C等高级语言编写相应的程序进行处理而得到结果[3],因此要求操作人员应具有一定的计算机技能和编程能力,而且程序调试过程费时、费力,很难得到推广应用。但是,Matlab的界面功能比较弱,给友好界面的开发应用或软件演示系统带来不便。
  为了提高工程计算软件的开发效率和质量,MatlhWorks公司在开发Matlab的同时,同样开发了MatlabExcellink插件,正是这个插件使得当前流行的MicrosoftExcel电子表格软件,不仅具备Excel的全部功能,而且还具备Matlab的数据运算能力和灵活自如的数据可视化能力。这里以文献[1]——“基于主成分分析的明江河水质评价”为例,介绍在MicrosoftExcel环境下通过Excellink函数实现主成分分析在水质评价中的应用。
  1、主成分分析的主要方法和步骤
  1.1主成分分析方法和评价模型
  主成分因子分析是将多个指标化为少数指标且能保持最大原始数据的相关性的一种方法。在主成分分析中较为重要的方差贡献,表示第个公因子在消除个公因子影响后,使方差贡献取到的最大值。用它主要衡量第个公因子的重要程度。因此我们可以以为权重,建立相应的评价模型:,其中F1,F2,…,Fk为相应的用来综合描述原始指标的k个公因子,计算综合得分并排序。
  1.2主成分分析算法的ExcelVBA程序设计
  要完成模型计算内容,且使计算程序具有通用性(与样本数和变量大小无关),程序设计是关键。这里程序设计采用VBA宏语言编写,因为这种方法比在Excel电子表格内编程灵活,而且程序能得到有效的保护(有关Excellink函数和Matlab中主成分分析的主要函数详见有关文献,在此不再论述)。
  程序设计首先在Excel工具菜单中打开VisualBaics编辑器,然后在VBE属性窗口中插入一个模块,在模块代码窗口内依次输入下面代码,该程序大致分为5部分:
  (1)获取数据区域行数和列数
  rr=Range("A1").CurrentRegion.Rows.Count
  cc=Range("A1").CurrentRegion.Columns.Count
  t=64+cc
  (2)将原始数据、变量和样本数传给Matlab工作区
  Mlputmatrix"data",adata
  Mlputmatrix"p",p
  Mlputmatrix"n",n
  (3)使用Matlab内置函数计算协方差、主成分等参数和主成分得分
  Mlevalstring"sr=cov(data)"
  Mlevalstring"[pcs,newdata,variances]=pcacov(sr)"
  Mlevalstring"y=data*pcs"
  (4)将matlab的计算结果送到excel工作表
  Mlgetmatrix"y",Chr(66)&(rr+3)&""
  Mlgetmatrix"n",Chr(65)&(rr+3)&""
  Mlgetmatrix"pcs",Chr(t+2)&2&""
  Mlgetmatrix"variances","L12"
  (5)生成前两个主成分平面图
  Mlevalstring"plot(y(:,1),y(:,2),'b.');xlabel('主成份1');ylabel('主成份2')"
  Mlevalstring"text(y(:,1),y(:,2),num2str((1:21)'))
  
  2 应用实例
  2.1计算实例
  为了便于比较,这里引用文献[1]——“基于主成分分析的明江河水质评价”为例,该文选取了4个具有代表性的点位和5个常规水质监测指标pH(x1)、溶解氧(x2)、高锰酸盐指数(x3)、化学需氧量(x4)、总大肠菌群(x5)作为研究对象,由于各项指标为数据差别较大,故进行标准化处理如表1所示。
  表12007年7月水质监测指标标准化处理结果
1.jpg

  图1、图2、图3为相关的电脑屏幕截图:
  2.jpg
  图1为程序输入的水质监测指标标准化处理结果
  3.jpg
  图2主成分计算结果
  4.jpg
  图34个水质点位主成分(1、2)的分布图
  图1是表1的4个水质点位标准化数据在“Sheel”中的输入结果;图2中“sheet2”为计算结果输出表;图3为4个水质点位主成分(1,2)二维平面分布。
  其程序步骤如下:
  ①打开已建好的上述程序的Excel软件,
  ②按图1输入水质标准化数据,
  ③在《工具栏》菜单上选择列表《主成分分析》按钮。
  进行了上述3个步骤操作后,计算结果见图2和图3。
  2.2实例结果比较
  为了便于比较,表2、表3和表4列出了2种软件的计算结果。
  表2主成分特征值与共献率
1.jpg

  表3第一主成分各指标的特征向量
2.jpg

  表42007年7月明江水质综合评价结果
3.jpg

  从表3和表4看出,两种软件计算的特征向量和主成分得分(F1)是吻合的,但从表2两种软件计算的主成分特征值和贡献率可见,前三个主成分的特征值和贡献率相当吻合,而后的主成分4、5的特征值和贡献率不尽相同,文献[1]应用SPSS软件计算,主成分5的特征值和贡献率竟然出现了负值,这从主成分分析原理上讲是无法解释的,应该是一个错误的结果。
  应用本软件计算不仅能给出了全部的主成分的特征向量和主成分得分,而且还能得出全部的主成分特征值和贡献率,这样的结果有利于对原始数据的全面分析和评价。此外,还能自动绘制出前2个主成分得分(F1)的平面分布图,从而进一步说明水质点位的污染分布和水质的优劣。
  3 结束语
  在Excel开发平台上,用Excellink插件实现主成分分析的水质评价的计算程序,具有计算简便、计算结果准确可靠等特点。该计算程序不仅适用于水质评价,而且还可用于其它环境质量质量评价,笔者还用该程序对大气环境质量进行了评价,也取得了令人满意的结果。
  4 参考文献
  [1]吴浩东、胡衡生基于主成分分析法的明江水质评价[J],湖北农业科学,2010,49(10):2407-2409.
  [2]邹海明、蒋良富、李粉茹基于主成分分析的水质评价方法[J],数学的实践与认识,2008,38(8)85-90.
  [3]张敏、李陶深、钏淑瑛基于Matlab的主成分分析方法的实现[J],广西大学学报(自然科学版),2005,30(增刊)74-77.

文章标题:基于Excel link主成分分析的水质评价方法

转载请注明来自:http://www.sofabiao.com/fblw/zf/huanjing/10174.html

相关问题解答

SCI服务

搜论文知识网的海量职称论文范文仅供广大读者免费阅读使用! 冀ICP备15021333号-3