第一步:将原始矩阵正向化
常见的四种指标有:
指标名称 | 指标特点 | 例子 |
---|---|---|
极大型(效益型) | 越大(多)越好 | 成绩、GDP增速、企业利润 |
极小型(成本型) | 越小(少)越好 | 费用、坏品率、污染程度 |
中间型 | 越接近某个值越好 | 水质量评估时的PH值 |
区间型 | 落在某个区间最好 | 体温、水中植物性营养物量 |
所谓将原始矩阵正向化,就是要将所有的指标类型统一转化成极大型指标。
极小型—>极大型
m
a
x
−
x
max-x
max−x
如果所有的元素均为正数,那么也可以使用
1
x
\frac{1}{x}
x1
中间型指标—>极大型指标
中间型指标:指标既不要太大也不要太小,取某特定值最好(如水质量评估PH值)
{
x
i
x_i
xi}是一组中间型指标序列,且最佳的数值为
x
b
e
s
t
x_{best}
xbest,那么正向化的公式如下:
M
=
max
∣
x
i
−
x
b
e
s
t
∣
,
x
i
=
1
−
∣
x
i
−
x
b
e
s
t
∣
M
M=\max{|x_i-x_{best}|},x_i=1-\frac{|x_i-x_{best}|}{M}
M=max∣xi−xbest∣,xi=1−M∣xi−xbest∣
PH值(转换前) | PH值(转换后) |
---|---|
6 | 1 − 7 − 6 2 = 1 2 1-\frac{7-6}{2}=\frac{1}{2} 1−27−6=21 |
7 | 1 − 7 − 7 2 = 1 1-\frac{7-7}{2}=1 1−27−7=1 |
8 | 1 − 8 − 7 2 = 1 2 1-\frac{8-7}{2}=\frac{1}{2} 1−28−7=21 |
9 | 1 − 9 − 7 2 = 0 1-\frac{9-7}{2}=0 1−29−7=0 |
x b e s t = 7 M = max ∣ 6 − 7 ∣ , ∣ 7 − 7 ∣ , ∣ 8 − 7 ∣ , ∣ 9 − 7 ∣ = 2 x_{best}=7\\ M=\max{|6-7|,|7-7|,|8-7|,|9-7|}=2 xbest=7M=max∣6−7∣,∣7−7∣,∣8−7∣,∣9−7∣=2
区间型指标–>极大型指标
区间型指标:指标值落在某个区间内最好。
x
i
{x_i}
xi是一组区间型指标序列,且最佳的区间为
[
a
,
b
]
[a,b]
[a,b],那么正向化的公式如下:
M
=
max
(
a
−
min
x
i
,
max
x
i
−
b
)
x
i
=
{
1
−
a
−
x
i
M
x
i
<
a
1
a
≤
x
i
≤
b
a
−
x
i
−
b
M
x
i
>
b
M=\max{(a-\min{x_i},\max{{x_i}-b})}\\ x_i=\left\{ \begin{array}{rcl} 1-\frac{a-x_i}{M}&&{x_i<a}\\ 1&&{a\leq x_i \leq b}\\ a-\frac{x_i-b}{M}&&{x_i>b} \end{array} \right.
M=max(a−minxi,maxxi−b)xi=⎩⎨⎧1−Ma−xi1a−Mxi−bxi<aa≤xi≤bxi>b
体温(转换前) | 体温(转换后) |
---|---|
35.2 | 0.4286 |
35.8 | 0.8571 |
36.6 | 1 |
37.1 | 0.9286 |
37.8 | 0.4286 |
38.4 | 0 |
a = 36 , b = 37 M = max ( 36 − 35.2 , 38.4 − 37 ) = 1.4 a=36,b=37\\ M=\max{(36-35.2,38.4-37)}=1.4 a=36,b=37M=max(36−35.2,38.4−37)=1.4
第二步:正向化矩阵标准化
标准化的目的是消除不同指标量纲的影响
假设有
n
n
n个要评价的对象,
m
m
m个评价指标(已经正向化了)构成的正向化矩阵如下:
X
=
[
x
11
x
12
⋯
x
1
m
x
21
x
22
⋯
x
2
m
⋮
⋮
⋱
⋮
x
n
1
x
n
2
⋯
x
n
m
]
X= \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1m} \\ x_{21} & x_{22} & \cdots & x_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots\ & x_{nm} \\ \end{bmatrix}
X=⎣⎢⎢⎢⎡x11x21⋮xn1x12x22⋮xn2⋯⋯⋱⋯ x1mx2m⋮xnm⎦⎥⎥⎥⎤
那么,对其标准化的矩阵记为
Z
Z
Z,Z中的每一个元素:
z
i
j
=
x
x
i
j
/
∑
i
=
1
n
x
i
j
2
(
每
一
个
元
素
/
其
所
在
列
的
元
素
的
平
方
和
)
z_{ij}=x_{xij}/\sqrt{\sum_{i=1}^{n}x_{ij}^2}\\(每一个元素/\sqrt{其所在列的元素的平方和})
zij=xxij/i=1∑nxij2(每一个元素/其所在列的元素的平方和)
第三步:计算的得分并归一化
假设有
n
n
n个要评价的对象,
m
m
m个评价指标的标准化矩阵:
Z
=
[
z
11
z
12
⋯
z
1
m
z
21
z
22
⋯
z
2
m
⋮
⋮
⋱
⋮
z
n
1
z
n
2
⋯
z
n
m
]
Z= \begin{bmatrix} z_{11} & z_{12} & \cdots & z_{1m} \\ z_{21} & z_{22} & \cdots & z_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n1} & z_{n2} & \cdots\ & z_{nm} \\ \end{bmatrix}
Z=⎣⎢⎢⎢⎡z11z21⋮zn1z12z22⋮zn2⋯⋯⋱⋯ z1mz2m⋮znm⎦⎥⎥⎥⎤
定义最大值
Z
+
=
(
Z
1
+
,
Z
2
+
,
⋯
,
Z
m
+
)
=
(
max
(
z
11
,
z
21
,
⋯
,
z
n
1
)
,
max
(
z
12
,
z
22
,
⋯
,
z
n
2
)
,
⋯
,
max
(
z
1
m
,
z
2
m
,
⋯
,
z
n
m
)
)
Z^+=(Z_1^+,Z_2^+,\cdots,Z_m^+)= (\max{(z_{11}, z_{21} , \cdots, z_{n1})},\max{(z_{12}, z_{22} , \cdots, z_{n2})},\cdots,\max{(z_{1m}, z_{2m} , \cdots, z_{nm})})
Z+=(Z1+,Z2+,⋯,Zm+)=(max(z11,z21,⋯,zn1),max(z12,z22,⋯,zn2),⋯,max(z1m,z2m,⋯,znm))
定义最小值
Z
−
=
(
Z
1
−
,
Z
2
−
,
⋯
,
Z
m
−
)
=
(
min
(
z
11
,
z
21
,
⋯
,
z
n
1
)
,
min
(
z
12
,
z
22
,
⋯
,
z
n
2
)
,
⋯
,
min
(
z
1
m
,
z
2
m
,
⋯
,
z
n
m
)
)
Z^-=(Z_1^-,Z_2^-,\cdots,Z_m^-)= (\min{(z_{11}, z_{21} , \cdots, z_{n1})},\min{(z_{12}, z_{22} , \cdots, z_{n2})},\cdots,\min{(z_{1m}, z_{2m} , \cdots, z_{nm})})
Z−=(Z1−,Z2−,⋯,Zm−)=(min(z11,z21,⋯,zn1),min(z12,z22,⋯,zn2),⋯,min(z1m,z2m,⋯,znm))
定义第
i
(
i
=
1
,
2
,
⋯
,
n
)
i(i=1,2,\cdots,n)
i(i=1,2,⋯,n)个评价对象与最大值的距离
D
i
+
=
∑
j
=
1
m
(
Z
j
+
−
z
i
j
)
2
D_i^+=\sqrt{\sum_{j=1}^m(Z_j^+-z_{ij})^2}
Di+=∑j=1m(Zj+−zij)2
定义第
i
(
i
=
1
,
2
,
⋯
,
n
)
i(i=1,2,\cdots,n)
i(i=1,2,⋯,n)个评价对象与最小值的距离
D
i
−
=
∑
j
=
1
m
(
Z
j
−
−
z
i
j
)
2
D_i^-=\sqrt{\sum_{j=1}^m(Z_j^--z_{ij})^2}
Di−=∑j=1m(Zj−−zij)2
那么我们可以计算出第
i
i
i个评价对象未归一化的得分:
S
i
=
D
i
−
D
i
−
+
D
i
+
S_i=\frac{D_i^-}{D_i^-+D_i^+}
Si=Di−+Di+Di−
很显然
0
≤
S
i
≤
1
0\leq S_i \leq1
0≤Si≤1,且
S
i
越
大
D
i
+
越
小
,
即
越
接
近
最
大
值
。
S_i越大D_i^+越小,即越接近最大值。
Si越大Di+越小,即越接近最大值。
带权重的TOPSIS
假设有
n
n
n个要评价的对象,
m
m
m个评价指标的标准化矩阵:
Z
=
[
z
11
z
12
⋯
z
1
m
z
21
z
22
⋯
z
2
m
⋮
⋮
⋱
⋮
z
n
1
z
n
2
⋯
z
n
m
]
Z= \begin{bmatrix} z_{11} & z_{12} & \cdots & z_{1m} \\ z_{21} & z_{22} & \cdots & z_{2m} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n1} & z_{n2} & \cdots\ & z_{nm} \\ \end{bmatrix}
Z=⎣⎢⎢⎢⎡z11z21⋮zn1z12z22⋮zn2⋯⋯⋱⋯ z1mz2m⋮znm⎦⎥⎥⎥⎤
定义最大值
Z
+
=
(
Z
1
+
,
Z
2
+
,
⋯
,
Z
m
+
)
=
(
max
(
z
11
,
z
21
,
⋯
,
z
n
1
)
,
max
(
z
12
,
z
22
,
⋯
,
z
n
2
)
,
⋯
,
max
(
z
1
m
,
z
2
m
,
⋯
,
z
n
m
)
)
Z^+=(Z_1^+,Z_2^+,\cdots,Z_m^+)= (\max{(z_{11}, z_{21} , \cdots, z_{n1})},\max{(z_{12}, z_{22} , \cdots, z_{n2})},\cdots,\max{(z_{1m}, z_{2m} , \cdots, z_{nm})})
Z+=(Z1+,Z2+,⋯,Zm+)=(max(z11,z21,⋯,zn1),max(z12,z22,⋯,zn2),⋯,max(z1m,z2m,⋯,znm))
定义最小值
Z
−
=
(
Z
1
−
,
Z
2
−
,
⋯
,
Z
m
−
)
=
(
min
(
z
11
,
z
21
,
⋯
,
z
n
1
)
,
min
(
z
12
,
z
22
,
⋯
,
z
n
2
)
,
⋯
,
min
(
z
1
m
,
z
2
m
,
⋯
,
z
n
m
)
)
Z^-=(Z_1^-,Z_2^-,\cdots,Z_m^-)= (\min{(z_{11}, z_{21} , \cdots, z_{n1})},\min{(z_{12}, z_{22} , \cdots, z_{n2})},\cdots,\min{(z_{1m}, z_{2m} , \cdots, z_{nm})})
Z−=(Z1−,Z2−,⋯,Zm−)=(min(z11,z21,⋯,zn1),min(z12,z22,⋯,zn2),⋯,min(z1m,z2m,⋯,znm))
定义第
i
(
i
=
1
,
2
,
⋯
,
n
)
i(i=1,2,\cdots,n)
i(i=1,2,⋯,n)个评价对象与最大值的距离
D
i
+
=
∑
j
=
1
m
ω
j
(
Z
j
+
−
z
i
j
)
2
D_i^+=\sqrt{\sum_{j=1}^m\omega_j(Z_j^+-z_{ij})^2}
Di+=∑j=1mωj(Zj+−zij)2
定义第
i
(
i
=
1
,
2
,
⋯
,
n
)
i(i=1,2,\cdots,n)
i(i=1,2,⋯,n)个评价对象与最小值的距离
D
i
−
=
∑
j
=
1
m
ω
j
(
Z
j
−
−
z
i
j
)
2
D_i^-=\sqrt{\sum_{j=1}^m\omega_j(Z_j^--z_{ij})^2}
Di−=∑j=1mωj(Zj−−zij)2
那么我们可以计算出第
i
i
i个评价对象未归一化的得分:
S
i
=
D
i
−
D
i
−
+
D
i
+
S_i=\frac{D_i^-}{D_i^-+D_i^+}
Si=Di−+Di+Di−
很显然
0
≤
S
i
≤
1
0\leq S_i \leq1
0≤Si≤1,且
S
i
越
大
D
i
+
越
小
,
即
越
接
近
最
大
值
。
S_i越大D_i^+越小,即越接近最大值。
Si越大Di+越小,即越接近最大值。
可以使用层次分析法给这
m
m
m个评价指标确定权重:
∑
j
=
1
m
ω
j
=
1
\sum_{j=1}^m\omega_j=1
j=1∑mωj=1
由于层次分析法的主观性太强了,更推荐使用熵权法来进行客观赋值。