【doc】Excel-VBA在物元分析法评估教学中的应用
Excel-VBA在物元分析法评估教学中的应
用
ISSN1009-3044
ComputerKnowledgeandTechnology电脑知识与技术
v0I?6,No?1janu.
ary2010,PP?154—156,162
E—mail:wltx@cccc.net.cn
httl:l://www.dnzs.net.ca
Te1:+86—551—569O9635690964
ExceI/VBA在物元分析法评估教学中的应用
李超
(安徽财经大学统计与应用数学学院,安徽蚌埠233030)
摘要:物元分析是一种解决不相容问题的分析方法,文中利用
VBA(VisualBasicforApplication)在Excel下编写宏程序,使用户处理
数据时彻底从手工操作中解放出来.最终达到物元分析法在Excel中实现"傻瓜"
操作的目标.
关键词:物元分析;教学;Excel;VBA
中图分类号:TP311文献标识码:A文章编号:1009—3044(2010)01—154—03
Excel/VBAApplicationonTeachingofEvaluationwithMatterElementAnalysis
LIChaoc
(SchoolofStatisticsandApp~edMathematics,AnbuJUniversityofFinanceandEconomics,
Bengbu233030,China)
Abstract:Matterelementanalysisisananalyticalmethodwhichcanresolveincompatiblepro
blem.Inthisarticle,aneasy—to—implement
s~ufiontomatterdementanalysisbyVBAinMicrosoftExcelisprovided,whichmakesuserS
becompletelyfreefrommanualoperation.
Key
word
word文档格式规范word作业纸小票打印word模板word简历模板免费word简历
s:matterelementanalysis;Teaching;Excel;VBA
1概述'
物元分析是研究在某些条件下,用通常的方法无法达到预期目标的不相容问题的分析方法.目前,使用物元分析方法进行数据
处理需要在Excel软件中运用函数,
公式
小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载
等进行人工,半人工操作.在数据量庞大的情况下,这种按步骤一步步的手工处理过程容易
出现输入错误.而且执行的任务多为重复性工作,处理过程较为复杂,从而降低了物元分析方法的可行性,准确性.因此,在使用物
元分析方法处理数据时,为了简化程序化计算量,使用户彻底从手:[操作中解放出来,我们试图在运用最广泛的办公软件Excel下
运用应用程序开发语言VBA进行自动化处理,对于普及和推广物元分析方法具有极其重要的意义.
2物元分析
物元分析综合评价模型的方法是:针对待评价区域N,搜集各有关评价指标Ck(k=1,2,…,p)的数据V(k=1,2,…,p),并根据需要将
各指标划分为若干级j0=1,2,…,m);由数据库或专家意见给每个指标各等级的数据范围Vjk(Vjk=[aj,】),再将待评区域的有关指标
代人各等级的集合中进行多指标评价;最后将评价结果按它与各等级集合的关联度大小进行比较,关联度越大,它与某等级集合的
符合程度就越佳.具体评价步骤详见文献1.
3物元分析法评估的Excel/VBA程序
易于用计算机
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
化是物元分析方法的一个显着特点,根据物元分析的理论,使用MicrosoftExcel软件的VBA语言,编写物元
分析的Excel宏程序算法.此程序可以一步实现物元分析法评估的全过程,并给出最终结果,而且此程序具有一定的通用性,只要进
行此类的物元分析评估(聚类),记录,指标个数和最大聚类个数都没有限制,尤其是聚类个数,可以根据实际情况有用户自由输入
确定.VBA在Excel下编写宏程序实现物元分析,其代码如下(可将下面代码输入ExcelVisualBasic编辑器中的代码编辑窗口即可
运行,如因排版缘故,一条语句可能显示在几行中,在ExcelVisualBasic代码编辑器
窗口应为同一行):
限于程序的易读性与篇幅,本程序中未处理异常,本程序具有.一定的通用性. 变量与数组的声明
OptionBase1
Dimshuju0,u0,shuju_min0,shuju——max(),shuju—average0AsSingle Dimpara_
a0,para_bO,parak0,weightO,weight_sumAsSingle
Dimdjjx0,djbzO,djbzkz0,dj_average0,djgldO,djzO,djlb0AsSingle
DimtempAsVariant定义临时变量
DimsiqyAsVariant需要进行物元分析的数据所在的区域
DimwyfxcommandbarAsCommandBar DimwyfxcmdbarAsCommandBarButton Publicn,In,k
退出时删除自定义工具栏
PrivateSubWorkbook—
BeforeClose(CancelAsBoolean) Application.CommandBars("物元分析").Delete'
EndSub
收稿日期:2009-12-03
作者简介:李超(1980一),男,安徽省肥西县人,师,硕士,主要研究方向为综合评价方法与应用.
本栏目责任编辑:王力
第6卷第1期(2010年1月)Compu~rKnowledgeandTechnology电脑知识与技术 打开时添加自定义工具栏
PrivateSubWorkbook—
Open0
OnErrorResumeNext
Application.CommandBars("物元").Delete
Setwyfxcommandbar=Application.CommandBars.Add("物元分析"1 Withwyfxcommandbar.Controls
Setwyfxcmdbar:.Add(msoControlButton, Withwyfxemdbar
.Style=ms0ButtonIconAndCapti0n .
Caption:"物元分析"
.OnAction="thisworkbook.wyfx" EndWith
wyfxcommandbar.Visible=True
EndWith
EndSub
PrivateSubwyfx0
OnErrorResumeNext
读取用户输入的数据所在的区域,默认范围为用户选择的表格数据区域 sjqy=lnputBox("请输入数据在Excel中的起始结束位置"&vbCrLf&vbCrLf&"※一定要正确输人,数据范围不包括标志".?t 输入范围",ActiveWindow.RangeSelection.AddressLocal(0,o))
IfLen(Trim(sjqy))=0Then
MsgBox"没有输入正确范围,请重新执行程序输入正确的数据范围!",,"没有输入" Else
k:InputBox("请输入最大聚类个数"&vbCrLf&vbCrLf&"※输入一个整数值,如4","输入聚类个数",4)
n=range(sjqy).Rows.Count
nl=range(sjqY).Columns.Count
ReDimshuju(n,m),u(n,m),julei(n),paraa(m),para_b(m),para_k(m),shuju_min(m),shuju
_max(m),shuju—average(m1
ReDimdjjx(k),djbz(k,m),djbzkz(k+2,m),dj—average(n),djgld(k,n,m),djz(n,k),djlb(n),weight(m)
将数据保存到数组中
Forj:1Tonl
Fori=1Ton
sbuju(i,j)=ActiveSheet.range(sjqy).Cells(i,j)
Next
Next
先计算每个指标的最大值,最小值和平均值.再计算参数a,b和k的值 Forj=1Tom
shuju,min(j)=shuju(1,j)
shuju,max(j)=shuju(1,j)
shuju—averageO)=0
Fori=】Ton
IfsKuju—max(j)<shuju(i,j)Thenshuju_max(j)=shuju(i,j)
Ifshuju—min(j)>shuju(i,j)Thenshuju—min(j)=shuju(i,j) shuju—average(j)=shuju—average0)+shuju(i,j) Next
shuju—average0)=shuju—average~)/n
para_b(j):l/(shujumax(j)一shuju—min0))
para_a(j)=1-para_h(j)shuju_max0) para_k(j):Application.WorksheetFunction.Log(0.5,para_a(j)+para_b(j)shuju_average0
))
Next.
计算隶属函数u(x1值
Forj=1Tom
Fori=1Ton
Ifshuju(i,j):shujumax(j)Thenu(i,j)=1 Ifshuju(i,j)=shuju_min(j)Thenu(i,j)=0 Ifshuju(i,j)>shuju,minO)Andshuju(i,j)<shuju—max0)Thenu(i,j)=(para_a(j)parab(j)shuju(i,j))parak(j)
Next
Next
计算等级标准
djjx(1)=l/k
Fori=2Tok
djjx(i)=djjx(i一1)+1/k
Next
Forj:1Tom
dj—average0):0
F0ri:1Tok
djbz(i,j):(djjx(i)(1/para_k(j))一para_a(j))/para_b(j)
aj—average(j)=dj_average0)+djbz(i,j)
本栏目责任编辑:王力.*计算机教学与敦膏信息化a155 ComputerKnowledgeandTechnology电脑知识与技术第6卷第1期(2010年1月)
Next'
dj—average0)=dj_average0)/k Next
Fori=lTok+2
ForJ=1Tom
Ifi=1Then
djbzkz(i,j)=0
ElseIfi=k+2Then
djbzkz(i,j)=1.5djbz(k,j) Else
djbzkz(i,j)=djbz(i一1,j)
End?
Next
Next
计算权重并标准化
weight_
sum=0
Forj=1Tom
weight(j)=shuju_averageO)/dj—average0) weight_
sum=.weight_
sum+weight(j)
Next
Forj=1Tom
weight(j)=weightG)/weight_sum Next
计算等级关联度'
Fort=1Tok
Fori=1Ton
ForJ:1Tom
Ifshuju(i,j)=0Andt=1Then djgld(t,i,j)=1
Else
Ifshuju(i,j)>djbzkz(t,j)Andshuju(i,j)<=djbzkz(t+1,j)Then
djgld(t,i,j)=-((Abs(shuju(i,j)一(djbzkz(t,j)+djbzkz(t+1,j)),2)一(djbzkz(t+1,j)一djbzkz(t,j))/2)/(djbzkz(t+1,j)一djbzkz(t,j))) Else
djgld(t,i,j)=(Abs(shuju(i,j)一(djbzkz(t,j)+djbzkz(t+1,j))/2)一(djbzkz(t+1,j)一djbzkz(t,j))/2)/((Abs(shuju(i,j)一djbzkz(t+2,j)/ 2)一djbzkz(t+2,j)/2)-(Abs(shuju(i,j)一(djbzkz(t,j)+djbzkz(t+1,j))/2)一(djbzkz(t+1,j)
一djbzkz(t,j))/2))
EndIf
EndIf
Next
Next
Next
加权计算各等级值并得出等级种类
Fort=1Tok
Fori=1Ton
djz(i,c)=0
ForJ=lTom
djz(i,t)=djz(i,t)+djgld(t,i,j)weightO)
Next.
Next
Next
Fori=1Ton
djlb(i)=1
temp=djz(i,1)
Fort=1Tok
Ifdjz(i,l】>tempThen
temp=djz(i,0
djlb(i)=t
EndIf
Next
Next
结果在本工作薄中新建立的工作表中输出 Wl0rksheets.Addafter.'=Sheets(Application.Worksheets.Count1
Application.ActiveSheet.Name="物元分析结果输出" Application.range("al"1.Value="记录"
Application.range("bl").Value:"聚类结果" Fori=2Ton+1
Cells(i,1).Value="Record"&Trim(Str(i一1)) Cells(i,2).Value=djlb(i一1)
156??
(下转第162页)
本栏目责任编辑:王力
ComputerKnowledgeandTechnology电脑知识与技术第6卷第1期(2010年1月)
构
知识点
高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载
的处理.
31分析并明确各横向结构知识点.整理出所有相关的知识点,明确它们在本课程
中不同章节处出现时所承担的不同作用,所完
成的不同功能.
4)设计各横向结构知识点在各章节教学过程中的任务.安排各相关知识点在第几章的授课中具体讲什么内容,讲到什么程度.
51横向结构知识点讲课过程中要进行回溯.回溯要简明扼要.学生回忆起学过的内容,教师又同时不必消耗太多课时,温故知
新,温故求新.
61横向结构知识点完成时进行总结,对进一步应用探索指明方向. 7)明确学生在每部分学完需要掌握的知识点及程度并辅之以网络课堂,其中基本资料至少包括
课件
超市陈列培训课件免费下载搭石ppt课件免费下载公安保密教育课件下载病媒生物防治课件 可下载高中数学必修四课件打包下载
,作业和答疑,以提供给学
生及时和持续的指导.
4效果分析
经过几年的实践,数据库技术课程的教学达到了以下效果:
11将课程复杂的网络结构简化成纵向和横向两条线性结构,学生的学习由难趋易,明显降低了课程难度.知识点有打碎有融
合.打碎是小化知识点,降低难度,融合是为了知识点的融会贯通和有效应用. 2)将数据库理论和应用相互促进.横向结构保证知识点既在理论部分分析讨论又在应用部分基于某种具体的DBMS进行实
现,知其然知其所以然,增强了学生学习的兴趣.
31实现了知识的顺利迁移.数据库理论是广谱的通用的知识点,这种DBMS的功能这样实现,另外的DBMS势必主要也包括了
这样的内容.掌握了理论将方便学习和移植,把学习一个DBMS的方法迁移到另一个不同的DBMS上去.这个在学生毕业设计中得
到了明显体现.课程实验使用SQLServer环境,毕业设计使用Oracle或Mysql或DB2等,通过自学,学生们顺利完成了任务.
4)学生掌握了一种新的学习方法,从而增强了自主学习能力.沿着教材的纵向结构学习是一种本能,发现知识的横向结构,提
取它.然后以此掌握知识的内涵并应用于实践则进入了学习的更高一层境界.这种能力,可以用于这门课程,当然也可以用于其它
课程:可以用于学习功课,当然也可用于应用实践.
参考文献:
【1】王珊,萨师煊.数据库技术[MI4版.北京:高等教育出版社,2006.5. 【2】黄德才.数据库技术及其应用教程【M】2版.北京:科学出版社,2006.8. 【3】C.J.Date.数据库系统导论
(AnIntroductiontoDatabaseSystems)(SeventhEdition)[M].北京:机械工业出版社,2003.
[4]AbrahamSilberschatz,等.数据库系统概念
:机械工业出版社,2008. (DatabaseSystemConcepts)(FifthEdition)[M].北京
f5】Patrick0'Neil,等.数据库技术编程与性能
(DatabasePrinciples,ProgrammingandPerformance)(SecondEdition)[M].北京:机械工业
出版社.2006.
[6]叶小平,汤庸,等.数据库系统基础教程1.北京:清华大学出版社,2007. [7】施伯乐,丁宝康,等.数据库教程『M1.电子工业出版社,2004. [8】陈志泊.数据库技术及应用教程fM1.北京:人民邮电出版社,2002. [9】何玉洁.数据库技术与应用教程fM】2版.北京:机械工业出版社,2007. [1O]苗雪兰,刘瑞新,等.数据库技术及应用教程[M13版.北京:机械工业出版社,2007.
(上接第156页)
Next
EndIf
EndSub
4结束语
物元分析是研究在某些条件下,用通常的方法无法达到预期目标的不相容问题的分析方法.其应用前景非常广阔,可将物元模
型的方法应用于评估问题,例如,文献1利用物元分析方法对我国洪灾损失进行综合评估,因为洪涝灾害损失综合评估也是一个较
为复杂的问题.根据事先确定的综合评估指标,对评估区域的指标性状数据用定量
的数值表示,并通过关联函数刻画指标与灾害等
级的关联程度,从而对各地区的洪涝灾害损失进行评估,物元分析综合评估方法能够较为客观地反映洪涝灾害损失的程度,实践证
明效果较为理想.
参考文献:
[1】李超.基于物元分析的我国洪灾损失综合评估[JJ.统计教育,2004(3):44—46. 【2】蔡文.可拓学概述【JI.系统工程理论与实践,1998(1):76—84. 【3】李超.灰色预测:Excel/VBA编程轻松实现『JJ.统计与信息论坛,2004,19(3):72—75.
I4】余华银,李超.熵值法在Excel中的VBA实现【J1.统计教育,2004(3):12,14. 【5]柯健,李超.Excel单键实现Borda法组合评价?.统计与信息论坛,2005,20(1):103—105.
162t计算机t掌与敦膏信息化*本栏目责任编辑:王力