文章目录
回顾:层次分析法的一些局限性
一、模型介绍
1.1 引例:
一个简单的想法:
一个较好的方法:
1.2 增加指标:
统一指标类型
标准化处理
计算得分
二、TOPSIS的介绍
第一步:将原始矩阵正向化
第二步:正向化矩阵标准化
第三步:计算得分并归一化
三、拓展:添加权重
*熵权法对TOPSIS模型的修正
度量信息量的大小
信息熵的定义
熵权法的计算步骤
熵权法背后的原理
四、代码实现
*熵权法加权
TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution)可翻译为逼近理想解排序法,国内常简称为优劣解距离法。
TOPSIS 法是一种常用的综合评价方法,其能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。
回顾:层次分析法的一些局限性
1. 评价的决策层不能太多,太多的话n会很大,判断矩阵和 一致矩阵差异可能会很大。
我们上面提到过的RI指标也只到了15:
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
R | 0 | 0 | 0.52 | 0.89 | 1.12 | 1.26 | 1.36 | 1.41 | 1.46 | 1.49 | 1.52 | 1.54 | 1.56 | 1.58 | 1.59 |
2. 如果决策层中指标的数据是已知的,那么我们如何利用这些数据来使得评价的更加准确呢nbsp;
该方法仍具有较强的主观性,判断/比较矩阵的构造在一定程度上是凭感觉决定的,一致性检验只是检验 感觉 有没有自相矛盾得太离谱。
如果题目中有已经提供了的数据,那就暗示我们不要用层次分析法了,我们可以通过分析这些数据内在的特征来进行建模。这就是TOPSIS方法应用于评价类问题与层次分析法不同之处。
一、模型介绍
1.1 引例:
坤坤宿舍共有四名同学,他们第一学期的高数成绩如下表所示:
姓名 | 成绩 |
坤坤 | 89 |
菜菜 | 60 |
小徐 | 74 |
鸡哥 | 99 |
请为这四名同学进行评估,该评分能合理的描述其高数水平的高低。
一个简单的想法:
姓名 | 成绩 | 等级level | 排名 | 评分 |
坤坤 | 89 | 2 | 3 | 3/10=0.3 |
菜菜 | 60 | 4 | 1 | 1/10=0.1 |
小徐 | 74 | 3 | 2 | 2/10=0.2 |
鸡哥 | 99 | 1 | 4 | 4/10=0.4 |
可见,鸡哥成绩最高,最后评估得分0.4也是最高的。
但该方法存在一些问题:哪怕菜菜只得了0分,他的评价分数也是0.1,只与鸡哥差0.3分。
一个较好的方法:
我们构造评分公式:
其中,最高成绩max:99,最低成绩min:60。
则有:
姓名 | 成绩 | 归一化前的评分 | 归一化后的评分 |
坤坤 | 89 | (89-60)/(99-60) = 0.74 | 0.74/2.1 = 0.35 |
菜菜 | 60 | (60-60)/(99-60) = 0 | 0 |
小徐 | 74 | (74-60)/(99-60) = 0.36 | 0.36/2.1 = 0.17 |
鸡哥 | 99 | (99-60)/(99-60) = 1 | 1/2.1 = 0.48 |
这样的话,菜菜考得再低,鸡哥考得再高,评分还是不变的。
其实,按卷子满分是max:100,最低min:0。
姓名 | 成绩 | 归一化前的评分 | 归一化后的评分 |
坤坤 | 89 | 0.89 | 0.28 |
菜菜 | 60 | 0.60 | 0.19 |
小徐 | 74 | 0.74 | 0.23 |
鸡哥 | 99 | 0.99 | 0.30 |
这样显然更合理一些,菜菜最后的评分也不是0分了。
但是,我们依然选择max:99,最低成绩min:60,而不是max:100,最低min:0。原因如下:
- 比较的对象一般要远大于两个,例如比较一个班级的成绩。
- 比较的指标也往往不只是一个方面的,例如成绩、工时数、课外竞赛得分等。
- 菜菜的成绩是0,但也许他的其它项就把评分弥补回来了。
- 有很多指标不存在理论上的最大值和最小值,例如衡量经济增长水平的指标:GDP增速。
评分的公式:
1.2 增加指标:
新增加了一个指标,现在要综合评价四位同学,并为他们进行评分。
姓名 | 成绩 | 发生矛盾次数 |
坤坤 | 89 | 2 |
菜菜 | 60 | 0 |
小徐 | 74 | 1 |
鸡哥 | 99 | 3 |
- 成绩是越高(大)越好,这样的指标称为极大型指标(效益型指标)。
- 发生矛盾次数越少(越小)越好,这样的指标称为极小型指标(成本型指标)。
统一指标类型
为了方便评分,我们需要统一指标类型(就比如最开始成绩第一等级给他level4);
将所有的指标转化为极大型称为指标正向化(最常用) :
姓名 | 成绩 | 发生矛盾次数 | 正向化后的争吵次数 |
坤坤 | 89 | 2 | 1 |
菜菜 | 60 | 0 | 3 |
小徐 | 74 | 1 | 2 |
鸡哥 | 99 | 3 | 0 |
指标类型 | 极大型 | 极小型 | 极大型 |
极小型指标转换为极大型指标的公式: max – x
标准化处理
姓名 | 成绩 | 正向化后的争吵次数 |
坤坤 | 89 | 1 |
菜菜 | 60 | 3 |
小徐 | 74 | 2 |
鸡哥 | 99 | 0 |
为了消去不同指标量纲的影响, 需要对已经正向化的矩阵进行标准化处理。
如果我们直接计算,很明显成绩的数值大小远大于争吵次数,这就会导致结果过于倾向于成绩的高低,而争吵次数的影响微乎其微,因此,我们要对其进行 标准化处理。
标准化公式:
假设有n个要评价的对象,m个评价指标(已经过正向化处理),构成矩阵X:
那么对其标准化的矩阵记为Z,Z中每个元素:
如:
计算得分
姓名 | 成绩 | 正向化后的争吵次数 |
坤坤 | 0.5437 | 0.2673 |
菜菜 | 0.3665 | 0.8018 |
小徐 | 0.4520 | 0.5345 |
鸡哥 | 0.6048 | 0 |
当只有一个指标的时候,我们:
他可以看作:
即:
x与最小值的距离 / (x与最大值的距离+x与最小值的距离)
我们以
对于坤坤:
对于菜菜:
对于小徐、鸡哥:略
得到下表:
姓名 | 归一化前的评分 | 归一化后的评分 | 排名 | ||
坤坤 | 0.5380 | 0.3206 | 0.3734 | 0.1857 | 3 |
菜菜 | 0.2382 | 0.8018 | 0.7709 | 0.3834 | 1 |
小徐 | 0.3078 | 0.5413 | 0.6375 | 0.3170 | 2 |
鸡哥 | 0.8018 | 0.2382 | 0.2291 | 0.1139 | 4 |
想不到,最后居然是成绩最低的菜菜综合测评排名第一!
当然,如果本学校更加看重成绩,也可以在第二步:标准化处理时设置权重。
二、TOPSIS的介绍
C.L.Hwang 和 K.Yoon 于1981年首次提出 TOPSIS (Technique for Order Preference by Similarity to an Ideal Solution),可翻译为逼近理想解排序法,国内常简称为优劣解距离法。
TOPSIS 法是一种常用的综合评价方法,能充分利用原始数据的 信息,其结果能精确地反映各评价方案之间的差距。
基本过程为先将原始数据矩阵统一指标类型(一般正向化处理) 得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指 标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分 别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对 象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法 对数据分布及样本含量没有严格限制,数据计算简单易行。
第一步:将原始矩阵正向化
最常见的四种指标:
指标名称 | 指标特点 | 例子 |
极大型(效益型)指标 | 越大(多)越好 | 成绩、GDP增速、企业利润 |
极小型(成本型)指标 | 越小(少)越好 | 费用、坏品率、污染程度 |
中间型指标 | 越接近某个值越好 | 水质量评估时的PH值 |
区间型指标 | 落在某个区间最好 | 体温、水中植物性营养物量 |
所谓的将原始矩阵正向化,就是要将所有的指标类型统一转化为极大型指标。(转换的函数形式可以不唯一)
- 极小型指标 –> 极大型指标:
- 中间型指标 –> 极大型指标:
如:
PH值(转换前) | PH值(转换后) |
6 | |
7 | |
8 | |
9 |
其中
- 区间型指标 –> 极大型指标
如:
体温(转换前) | 体温(转换后) |
35.2 | 0.4286 |
35.8 |