TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)可翻译为逼近理想解排序法,国内常简称为优劣解距离法。TOPSIS法是一种常用的综合评价方法,能充分利用原始数据的信息,其结果能准确地反映各评价方案之间的差距。
举个栗子:
姓名 | 成绩 |
---|---|
小明 | 89 |
小王 | 60 |
小张 | 74 |
小周 | 90 |
请你为这四名同学成绩进行评分,该评分能合理的描述他们成绩的高低。
一个很简单的想法:
姓名 | 成绩 | 排名 | 修正后 | 评分 |
---|---|---|---|---|
小明 | 89 | 2 | 3 | 0.3 |
小王 | 60 | 4 | 1 | 0.1 |
小张 | 74 | 3 | 2 | 0.2 |
小周 | 90 | 1 | 4 | 0.4 |
我们会发现,可以任意修改他们的成绩,只要保证排名不变,那么评分就不会变,显然该评价方式不够合理!
一个比较好的想法:
构造计算评分的公式: (x - min) / (max - min)
姓名 | 成绩 | 未归一化的评分 | 归一化评分 |
---|---|---|---|
小明 | 89 | (89 - 60) / (90 - 60) = 0.97 | 0.97 / 2.44 = 0.3975 |
小王 | 60 | (60 - 60) / (90 - 60) = 0 | 0 / 2.44 = 0 |
小张 | 74 | (74 - 60) / (90 - 60) = 0.47 | 0.47 / 2.44 = 0.1926 |
小周 | 90 | (90 - 60) / (90 - 60) = 1 | 1 / 2.44 = 0.4098 |
思考:卷面最高成绩是100,最低成绩是0,为什么不直接用 (x - 0) / (100- 0) 呢 ?
原因:
(1)比较的对象一般要远大于两个;
(2)比较的指标也往往不只是一个方面的,例如成绩、工时数、课外竞赛得分等;
(3)有很多指标不存在理论上的最大值和最小值,例如衡量经济增长水平的指标:GDP增速。
因此,我们构造计算评分的公式为: (x - min) / (max - min).
拓展:我们现增加一个指标,请为他们进行综合评分。
姓名 | 成绩 | 违纪次数 |
---|---|---|
小明 | 89 | 2 |
小王 | 60 | 0 |
小张 | 74 | 1 |
小周 | 90 | 3 |
成绩是越高越好,我们称这样的指标为极大型指标(效益性指标)。违纪次数越少越好,我们称这样的指标为极小型指标(成本型指标)。
那么这里我们需要将极小型指标违纪次数转化为极大型指标。
姓名 | 成绩 | 违纪次数 | 正向化后违纪情况 |
---|---|---|---|
小明 | 89 | 2 | 1 |
小王 | 60 | 0 | 3 |
小张 | 74 | 1 | 2 |
小周 | 90 | 3 | 0 |
指标类型 | 极大型 | 极小型 | 极大型 |
第一步:统一指标类型
将所有的指标转化为极大型称为指标正向化(最常用).
第二步:标准化处理
成绩的单位是分,而违纪次数单位是次,单位量纲不同,因此需进行处理。
为了消去不同指标量纲的影响,需要对已经正向化的矩阵进行标准化处理。
标准化处理的计算公式
第三步:计算得分并归一化
姓名 | 成绩 | 正向化后的违纪次数 |
---|---|---|
小明 | 0.5437 | 0.2673 |
小王 | 0.3665 | 0.8018 |
小张 | 0.4520 | 0.5345 |
小周 | 0.6048 | 0 |
指标类型 | 极大型 | 极大型 |
当只有一个指标的时候,构造计算评分的公式为:
(x - min) / (max - min)
变形得:(x - min) / (max - x)+(x - min)
即:x与最小值距离 / x与最大值距离+x与最小值距离
那多个指标时呢?
其实我们可以类比只有一个指标计算得分的方法!
这里我们可得到:
最大值 [0.6048, 0.8018],最小值 [0.3665, 0]
计算可得:
通过该方法,我们可以计算得出每个同学的成绩综合评分,然后对最终评分进行归一化处理,由此我们可得到每个人的最终排名。
注意:要区别开归一化和标准化。归一化的计算步骤也可以消去量纲的影响,但更多时候,我们进行归一化的目的是为了让我们的结果更容易解释,或者说让我们对结果有一个更加清晰直观的印象。例如将得分归一化后可限制在0—1这个区间,对于区间内的每一个得分,我们很容易的得到其所处的比例位置。
所以说,TOPSIS法也被称为优劣解距离法。
总结
TOPSIS法的基本过程为先将原始数据矩阵统一指标类型(一般正向化处理) 得到正向化的矩阵,再对正向化矩阵进行标准化处理以消除各指标量纲的影响,并找到有限方案中的最优方案和最劣方案,然后分别计算各评价对象与最优方案和最劣方案间的距离,获得各评价对象与最优方案的相对接近程度,以此作为评价优劣的依据。该方法对数据分布及样本含量没有严格限制,数据计算简单易行。
拓展
最常见的四种指标:
指标名称 | 指标特点 | example |
---|---|---|
极大型(效益性)指标 | 越大(多)越好 | 成绩、GDP增速、利润 |
极小型(成本型)指标 | 越小(少)越好 | 费用、次品率、污染程度 |
中间型指标 | 越接近某个值越好 | 水质评估时的pH值 |
区间型指标 | 落在某个区间最好 | 体温、水中植物性营养物量 |
注意:正向化的公式不唯一,也可以结合自己的数据进行适当的修改。
(1)极小型指标 ----> 极大型指标:max - x (如果所有元素均为正数,也可用 1/x )
(2)中间型指标 ----> 极大型指标:
(3)区间型指标 ----> 极大型指标:
此外,在本例中我们没有考虑各项指标权值的影响,默认了各项指标的权重都为1.
我们可用以下方法加入权重: 我们也可以先对标准化矩阵中的每个元素计算权重,然后直接用带权重的标准化矩阵来计算得 分,这样得到的结果和上面在计算距离时引入权重得到的结果是几乎相同的。
那权重怎么来呢?可以用我们之前讲的层次分析法求得。当然,层次分析法的主观性太强了,更推荐大家使用熵权法来进行客观赋值。