赞
踩
在前面的《利用Matlab实现AHP评判模型》一文中,我们有讨论到AHP的一些缺点,例如主观性过强、判断矩阵的填写需要专家填写难以实现以及缺乏数据支撑等。所以在这里我不然而然地就联想到了结合熵权法的TOPSIS算法。接下来本人将陈述我对该算法的理解及看法,并且利用Matlab实现该算法
提示:本文学习数据由“清风老师”提供。
老样子,我们沿着思维导图学习这一算法。在这里先留个大概印象,我们再一个个往里填叭。
L.Hwang 和 K.Yoon 于1981年首次提出 TOPSIS (Technique for Order Preference by Similarity to an Ideal Solution)。TOPSIS 法是一种常用的组内综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。基本过程为基于归一化后的原始数据矩阵,采用余弦法找出有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。
笔者刚学习这一模型,看这简介的时候就想:“这不比AHP要香?”有原始数据支撑,并且对于样本n种没有严格的限制,如果是AHP,n的取值就得小于15了,大于15,一次性检验就无法正常的进行了。
废话不多说,上数据叭。
eg:评价下表中20条河流的水质情况(其中,含氧量越高越好,河流PH值越接近7越好,细菌总数越少越好,植物性营养物质介于10~20之间最佳)
判断各组数据的类型,进而对各组数据进行正向化处理,即是将各组数据的判断指标统一为极大型判断指标,以至于我们可以从一方面评判这些数据,一般都是转化为极大型指标。类型有级小型、中间型以及区间型等,相应的处理过程如下:
综上,即可得正向化矩阵D:
然后我们在对正向化矩阵进行标椎化处理,进而得到标椎化矩阵Z。
处理公式如下:
(注意:标椎化的公式是不唯一的,还有其它的标椎化过程。)
即可得到标准矩阵如下:
对于权重 Wi 的求解,可以用层次分析法或者熵权法来求解,AHP的方法在《利用Matlab实现AHP评判模型》一文中有详细的讲解,故这里不再加以赘述。这里利用熵权法对河流水质各指标的权重进行评估。
按照信息论基本原理的解释,信息是系统有序程度的一个度量,熵是系统无序程度的一个度量;根据信息熵的定义,对于某项指标,可以用熵值来判断某个指标的离散程度,其信息熵值越小,指标的离散程度越大, 该指标对综合评价的影响(即权重)就越大,如果某项指标的值全部相等,则该指标在综合评价中不起作用。因此,可利用信息熵这个工具,计算出各个指标的权重,为多指标综合评价提供依据。
熵权法求权重,相对于AHP求权重,熵权法是从数据本身出发,减少了操作者的主观性影响,但是却不一定合理,可以理解为方差大的指标权重就越大,但是相对于那些变化很小的数据,那方差如果几乎为0,那却不是快要忽略这些数据的影响了。所以说,一种模型合不合理是相对而论的,要具体看数据、使用环境而定。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。