模型介绍
TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution),可翻译为逼近理想解排序法,国内常简称为优劣解距离法。
TOPSIS法是一种常用的综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间的差距。
层次分析法的局限性
评价的决策层不能太多,太多的话 n 会很大,判断矩阵和一致矩阵差异可能会很大。(平均随机一致性指标RI的表格中 n 最多是15)
如果决策层中指标的数据是已知的,那么我们如何利用这些数据来使得评价更加准确呢?
例题
小明同宿舍共有四名同学,成绩如下所示
姓名 成绩 小明 89 小王 60 小张 74 清风 99 请你为这四名同学进行评分,该评分能合理的描述其成绩的高低。
如果我们将评分类比为层次分析法中的权重,将修正后的排名进行归一化就可以得到评分
我们可以得到下面的表格
姓名 | 成绩 | 排名 | 修正后的排名 | 评分 |
---|---|---|---|---|
小明 | 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 |
但是该想法有不合理之处,当修改成绩表格时:
姓名 | 成绩 | 排名 | 修正后的排名 | 评分 |
---|---|---|---|---|
小明 | 89 | 2 | 3 | 3 / 10 = 0.3 |
小王 | 4 | 1 | 1 / 10 = 0.1 | |
小张 | 74 | 3 | 2 | 2 / 10 = 0.2 |
清风 | 1 | 4 | 4 / 10 = 0.4 |
无论怎么修改,只要保证排名不变,评分就不会改变,说明我们给出的评分不能够完全反应出原始数据的信息。
可以采用如下的构造计算评分的公式
对于不使用原始数据进行直接归一化的解释:
- 比较的对象一般要远大于两个
- 比较的指标往往不是一个方面的
- 有很多指标不存在理论上的最大值和最小值
例题分析
新增加了一个指标,请综合评价四位同学,并进行评分
姓名 成绩 与他人争吵次数 小明 89 2 小王 60 0 小张 74 1 清风 99 3
成绩是越高越好,这样的指标称为极大型指标(效益型指标)。
与他人争吵的次数越少越好,这样的指标称为极小型指标(成本型指标)。
统一指标类型
将所有的指标转化为极大型称为指标正向化(最常用)
极小型指标转换为极大型指标的公式:
得到如下表格
姓名 | 成绩 | 与他人争吵次数 | 正向化后的争吵次数 |
---|---|---|---|
小明 | 89 | 2 | 1 |
小王 | 60 | 0 | 3 |
小张 | 74 | 1 | 2 |
清风 | 99 | 3 | 0 |
指标类型 | 极大型 | 极小型 | 极大型 |
标准化处理
为了消去不同指标量纲的影响,需要对已经正向化的矩阵进行标准化处理
标准化处理的计算公式:
假设有 n 个要评价的对象,m 个评价指标(已经正向化)构成的正向化矩阵如下:
那么,对其标准化的矩阵记为 Z,Z 中每一个元素:
原矩阵
经过标准化可以得到
计算得分
姓名 | 成绩 | 正向化后的争吵次数 |
---|---|---|
小明 | 0.5437 | 0.2673 |
小王 | 0.3665 | 0.8018 |
小张 | 0.4520 | 0.5345 |
清风 | 0.6048 | 0 |
指标类型 | 极大型 | 极大型 |
只有一个指标时:
类比只有一个指标时的计算方法:
假设有 n 个要评价的对象,m 个评价指标的标准化矩阵:
定义最大值 Z+
定义最小值 Z-
定义第 i ( i = 1 , 2 , … , n ) 个评价对象与最大值的距离
定义第 i ( i = 1 , 2 , … , n ) 个评价对象与最小值的距离
那么,我们可以计算得出第 i ( i = 1 , 2 , … , n ) 个评价对象未归一化的得分:
很明显 0 ≤ Si ≤ 1,且Si 越大,D+i 越小,即接近最大值。
附上例题的解法
方法总结
基本过程为先将原始数据矩阵统一指标类型(一般正向化处理)得到正向化的矩阵,再对正向化的矩阵进行标准化处理以消除各指标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。
第一步:将原始矩阵正向化
最常见的四种指标:
指标名称 | 指标特点 | 例子 |
---|---|---|
极大型(效益型)指标 | 越大越好 | 成绩、GDP增速、企业利润 |
极小型(成本型)指标 | 越小越好 | 费用、坏品率、污染程度 |
中间型指标 | 越接近某个值越好 | 水质量评估时的PH值 |
区间型指标 | 落在某个区间最好 | 体温、水中植物营养物量 |
所谓的将原式矩阵正向化,就是将所有的指标类型统一转化为极大型指标。
极小型转极大型:
如果所有的元素均为正数,也可以使用 1/ x
中间型转极大型:
{ xi } 是一组中间型指标序列,且最佳的数值为 xbest ,那么正向化的公式如下:
举个栗子
区间型转极大型:
{ xi } 是一组区间型指标序列,且最佳的区间为 [ a , b ],那么正向化的公式如下:
(手打公式累死辽)
给个例子
第二步:正向化矩阵标准化
标准化的目的是消除不同指标量纲的影响
假设有 n 个要评价的对象,m 个评价指标(已经正向化)构成的正向化矩阵如下:
那么,对其标准化的矩阵记为 Z,Z 中每一个元素:
第三步:计算得分并归一化
假设有 n 个要评价的对象,m 个评价指标的标准化矩阵:
定义最大值 Z+
定义最小值 Z-
定义第 i ( i = 1 , 2 , … , n ) 个评价对象与最大值的距离
定义第 i ( i = 1 , 2 , … , n ) 个评价对象与最小值的距离
那么,我们可以计算得出第 i ( i = 1 , 2 , … , n ) 个评价对象未归一化的得分:
很明显 0 ≤ Si ≤ 1,且Si 越大,D+i 越小,即接近最大值。
模型拓展
带权重的TOPSIS
有 n 个要评价的对象,m 个评价指标的标准化矩阵:
可以使用层次分析法给这m个评价指标确定权重:
定义最大值 Z+
定义最小值 Z-
定义第 i ( i = 1 , 2 , … , n ) 个评价对象与最大值的距离
定义第 i ( i = 1 , 2 , … , n ) 个评价对象与最小值的距离
那么,我们可以计算得出第 i ( i = 1 , 2 , … , n ) 个评价对象未归一化的得分:
很明显 0 ≤ Si ≤ 1,且Si 越大,D+i 越小,即接近最大值。