TOPSIS优劣解距离法

TOPSIS法(Technique for Order Preference by Similarity to Ideal Solution),可翻译为逼近理想解排序法,国内常简称为优劣解距离法。TOPSIS法是一种常用的综合评价方法,能充分利用原始数据的信息,其结果能精确地反映各评价方案之间地差距。

第一步:将原始矩阵正向化

最常见的四种指标:

指标名称指标特点例子
极大型(效益性)指标越大(多)越好成绩、GDP增速、企业利润
极小型(成本型)指标越小(少)越好费用、坏品率、污染程度
中间型指标越接近某个值越好pH值
区间型指标落在某个区间最好体温、水中植物性营养物量

所谓的将原始矩阵正向化,就是要将所有的指标类型统一转化为极大型指标(转换的函数形式不唯一)。

极小型指标转换为极大型指标

公式:

如果所有元素均是正整数,也可用$\frac{1}{x}$。

中间型指标转换为极大型指标

中间型指标:指标值不太大也不太小,而是接近某一特定值。
{$x_i$}是一组中间型指标序列,且最佳数值为$x_{best}$,那么正向化的公式如下:

例:

pH值(转换前) pH值(转换后)
6 $1-\frac{\vert 6-7\vert}{2}=\frac{1}{2}$
7 $1-\frac{\vert 7-7\vert}{2}=1$
8 $1-\frac{\vert 8-7\vert}{2}=\frac{1}{2}$
9 $1-\frac{\vert 9-7\vert}{2}=0$

确定$x_{best}的值$:

计算$M$:

区间型指标转换为极大型指标

指标值落在某个区间内最好,例如人的体温在36°~37°这个区间比较好。
$\{x_i\}$是一组中间型指标序列,且最佳的区间为$[a,b]$,那么正向化的公式如下:

体温(转换前) 体温(转换后)
35.2 0.4286
35.8 0.8571
36.6 1
37.1 0.9286
37.8 0.4286
38.4 0

由人的体温在36°~37°可得$a=36$,$b=37$。

由公式得:

第二步:正向化矩阵标准化

标准化的目的是消除不同指标量纲的影响。

为了消去不同指标量纲的影响,需要对已经正向化的矩阵进行标准化处理。

假设有n个要评价的对象,m个评价指标(已经正向化)构成的正向化矩阵如下:

那么,对其标准化的矩阵记为Z,Z中的每一个元素:

(每一个元素/根号下其所在列的元素的平方和)

第三步:计算得分并归一化

假设有n个要评价的对象,m个评价指标的标准化矩阵。

定义最大值$Z^{+}$:

定义最小值$Z^{-}$:

定义第$i(i=1,2,{\cdots},n)$个评价对象与最大值的距离

定义第c个评价对象与最小值的距离

那么,我们可以计算得出第$i(i=1,2,{\cdots},n)$个评价对象未归一化的得分:

很明显$0\leqslant S_{i}\leqslant1$,且$S_{i}$越大$D^{+}_{i}$,即越接近最大值。

练习

题目:评价下表中20条河流的水质情况

注:含氧量越高越好;PH值越接近7越好;细菌总数越少越好;植物性营养物量介于10~20之间最佳,超过20或低于10均不好。

河流 含氧量(ppm) PH值A 细菌总数(个/mL) 植物性营养物量(ppm)
A 4.69 6.59 51 11.94
B 2.03 7.86 19 6.46
C 9.11 6.31 46 8.91
D 8.61 7.05 46 26.43
E 7.13 6.5 50 23.57
F 2.39 6.77 38 24.62
G 7.69 6.79 38 6.01
H 9.3 6.81 27 31.57
I 5.45 7.62 5 18.46
J 6.19 7.27 17 7.51
K 7.93 7.53 9 6.52
L 4.4 7.28 17 25.3
M 7.46 8.24 23 14.42
N 2.01 5.55 47 26.31
O 2.04 6.4 23 17.91
P 7.73 6.14 52 15.72
Q 6.35 7.58 25 29.46
R 8.29 8.41 39 12.02
S 3.54 7.27 54 3.16
T 7.44 6.26 8 28.41

注:数据是我随手编的,仅用于讲解相应的算法,可能有不合理之处,请见谅。