声明:以下笔记中的图片均来自“数学建模学习交流”清风老师的课程ppt,仅用作学习交流使用
文章目录
- TOPSIS
- 步骤
- 第一步 原始矩阵正向化
- 极小型指标-->极大型指标
- 中间型指标-->极大型指标
- 区间型指标-->极大型指标
- 第二步 正向化矩阵标准化
- 第三步 计算得分并归一化
- 带权重的TOPSIS
- 层次分析法
- 基于熵权法对于TOPSIS模型的修正
- 步骤
- 第一步 正向化矩阵标准化
- 第二步 计算概率矩阵
- 第三步 计算每个指标的熵权
TOPSIS
全称 Technique for Order Preference by Similarity to Ideal Solution 逼近理想解排序法
topsis能充分利用原始数据的信息,精确地反映各评价方案之间的差距
可以解决层次分析法中决策层数据已知的情况,使评价结果更准确
步骤
第一步 原始矩阵正向化
常见的四种指标:极大型(效益型)指标、极小型(成本型)指标、中间型指标、区间型指标
一般将其他三种指标化为极大型指标,这个过程被称之为指标正向化
极小型指标–>极大型指标
x = > m a x − x x =>max-x x=>max−x
当所有指标均为正数时,也可以
x = > 1 x x=>\frac{1}{x} x=>x1
中间型指标–>极大型指标
x b e s t x_{best} xbest为最佳指标
M = m a x { ∣ x i − x b e s t ∣ } M=max{ \{|x_i-x_{best}|\} } M=max{∣xi−xbest∣}
x i ~ = 1 − ∣ x i − x b e s t ∣ M \tilde{x_i}=1-\frac{|x_i-x_{best}|}{M} xi~=1−M∣xi−xbest∣
例如
区间型指标–>极大型指标
[ a , b ] [a,b] [a,b]为最佳区间
M = m a x { a − m i n x i , m a x x i − b } M=max\{a-min{x_i},max{x_i}-b\} M=max{a−minxi,maxxi−b}
x i ~ = { 1 − a − x i M , x i < a 1 , a ≤ x i < b 1 − x i − b M , x i > b \tilde{x_i}=\left\{ \begin{array}{rcl} 1-\frac{a-x_i}{M} ,& & {x_i<a}\\ 1 ,& & {a \leq x_i < b}\\ 1-\frac{x_i-b}{M} ,& & {x_i>b}\\ \end{array} \right. xi~=⎩ ⎨ ⎧1−Ma−xi,1,1−Mxi−b,xi<aa≤xi<bxi>b
例如
第二步 正向化矩阵标准化
标准化以消除指标量纲不同的影响
此时标准化矩阵可能会存在负数,但是并不影响正常topsis的计算过程,但是当运用到熵权法时,则要求标准化矩阵都是正数,故需要将正向化矩阵进行另一种标准化方法,具体操作见后文。
第三步 计算得分并归一化
补充:如果各项指标带权重的话,只需要在每个欧氏距离前乘上对应权重即可
最后按照得分排序即可
带权重的TOPSIS
层次分析法
有n个评价对象,m个指标,可以根据层次分析法对这m个指标赋权重,缺点是层次分析法主观性太强
基于熵权法对于TOPSIS模型的修正
- 熵权法依据的原理: 指标的变异程度越小,所反映的信息量也越少,其对应的权值也应该越低。(客观 = 数据本身就可以告诉我们权重)
(一种极端的例子:对于所有的样本而言,这个指标都是相同的数值,那么我们可认为这个指标的权值为0,即这个指标对于我们的评价起不到任何帮助) - 事情发生的概率越大,所包含的信息量越小;反之同理。
假设 x x x表示事件 X X X可能发生的某种情况, p ( x ) p(x) p(x)表示这种情况发生的概率,我们可以定义: I ( x ) = − l n ( p ( x ) ) I(x)=-ln(p(x)) I(x)=−ln(p(x))
且由于 0 ≤ p ( x ) ≤ 1 0 \leq p(x) \leq 1 0≤p(x)≤1 故 I ( x ) ≥ 0 I(x)\geq0 I(x)≥0
那么事件 X X X的信息熵为:
H ( X ) = ∑ i = 1 n [ p ( x i ) I ( x i ) ] = − ∑ i = 1 n [ p ( x i ) l n ( p ( x i ) ) ] H(X)=\sum_{i=1}^{n}{[p(x_i)I(x_i)]}=-\sum_{i=1}^{n}{[p(x_i)ln(p(x_i))]} H(X)=i=1∑n[p(xi)I(xi)]=−i=1∑n[p(xi)ln(p(xi))]
可以证明当 p ( x 1 ) = p ( x 2 ) = p ( x 3 ) = . . . = p ( x n ) = 1 n p(x_1)=p(x_2)=p(x_3)=...=p(x_n)=\frac{1}{n} p(x1)=p(x2)=p(x3)=...=p(xn)=n1时, H ( X ) m a x = ln n H(X)_{max}=\ln n H(X)max=lnn
随机变量的信息熵越大,则它的值能够给当前信息所补充的信息量越大,而已有的信息量越小。熵权法所关注的是已有的信息量,所以信息熵越大,信息越小。
步骤
第一步 正向化矩阵标准化
若 X X X中本身存在不负数,则执行TOPSIS第二步,即 z i j = x i j ∑ i = 1 n x i j 2 z_{ij}=\frac{x_{ij}}{\sqrt{\sum_{i=1}^{n}{x_{ij}^{2}}}} zij=∑i=1nxij2xij ,从而得到标准化矩阵 Z Z Z。
若 X X X中本身存在负数,则需要对其执行另一种标准化方法,即 z i j ~ = x i j − m i n { x 1 j , x 2 j , . . . , x n j } m a x { x 1 j , x 2 j , . . . , x n j } − m i n { x 1 j , x 2 j , . . . , x n j } \tilde{z_{ij}}=\frac{x_{ij}-min\{x_{1j},x_{2j},...,x_{nj}\}}{max\{x_{1j},x_{2j},...,x_{nj}\}-min\{x_{1j},x_{2j},...,x_{nj}\}} zij~=max{x1j,x2j,...,xnj}−min{x1j,x2j,...,xnj}xij−min{x1j,x2j,...,xnj}
第二步 计算概率矩阵
p i j = z i j ~ ∑ i = 1 n z i j ~ p_{ij}=\frac{\tilde{z_{ij}}}{\sum^{n}_{i=1}{\tilde{z_{ij}}}} pij=∑i=1nzij~zij~
即每个数除以所在列和
容易验证 ∑ i = 1 n p i j = 1 \sum_{i=1}^{n}p_{ij}=1 ∑i=1npij=1 即保证各列和为1,即每个指标的概率和为1
第三步 计算每个指标的熵权
- 计算信息熵: e j = − 1 ln n ∑ i = 1 n p i j ln ( p i j ) , ( j = 1 , 2 , . . . , m ) e_j=-\frac{1}{\ln n} \sum_{i=1}^{n}{p_{ij}\ln (p_{ij})} , (j=1,2,...,m) ej=−lnn1i=1∑npijln(pij),(j=1,2,...,m)
与前面的 H ( X ) H(X) H(X)相比多除以了一个常数,是为了使信息熵和信息效用值落在 [ 0 , 1 ] [0,1] [0,1] - 计算信息效用值: d j = 1 − e j d_j=1-e_j dj=1−ej
可以理解为是将信息熵正向化,这样信息效用值就和信息量以及权重成正比了 - 计算熵权: W j = d j ∑ j = 1 m d j W_j=\frac{d_{j}}{\sum_{j=1}^{m}d_j} Wj=∑j=1mdjdj
即实现信息效用值归一化
最后利用熵权计算得分即可