熵值法与TOPSIS法以及两者结合

补充:TOPSIS法(优劣解距离法)介绍及 python3 实现

一、熵值法

熵值法的主要目的是对指标体系进行赋权

熵越大说明系统越混乱,携带的信息越少,权重越小;熵越小说明系统越有序,携带的信息越多,权重越大。

熵值法是一种客观赋权方法,借鉴了信息熵思想,它通过计算指标的信息熵,根据指标的相对变化程度对系统整体的影响来决定指标的权重,即根据各个指标标志值的差异程度来进行赋权,从而得出各个指标相应的权重,相对变化程度大的指标具有较大的权重。

步骤

(1)原始数据的收集与整理

假设有m个待评价样本,n项评价指标,形成原始指标数据矩阵:
X = ( x 11 . . . x 1 n ⋮ ⋱ ⋮ x m 1 ⋯ x m n ) X=\left( \begin{matrix} x_{11}& ...& x_{1n}\\ \vdots& \ddots& \vdots\\ x_{m1}& \cdots& x_{mn}\\ \end{matrix} \right) X=x11xm1...x1nxmn
其中 X i j X_{ij} Xij 表示第 i 个样本第 j 项评价指标的数值。

对于某项指标 X j X_j Xj,样本的离散程度越大,则该指标在综合评价中所起的作用就越大。如果该指标的标志值全部相等,则表示该指标在综合评价中不起作用。

例如:

语文数学英语音乐
张三50448590
李四33742078
王五46388810
陈六65459851
杨七13651245

或者

GDP就业人数财政支出人均可支配收入
北京xxxxxxxx
上海xxxxxxxx
广州xxxxxxxx
深圳xxxxxxxx

(2)数据处理

为消除因量纲不同对评价结果的影响,需要对各指标进行归一化或者标准化处理。

归一化处理:

若所用指标的值越大越好(正向指标:)
x i j ′ = x j − x min ⁡ x max ⁡ − x min ⁡ x'_{ij}=\frac{x_j-x_{\min}}{x_{\max}-x_{\min}} xij=xmaxxminxjxmin
若所用指标的值越小越好(负向指标:)
x i j ′ = x max ⁡ − x j x max ⁡ − x min ⁡ x'_{ij}=\frac{x_{\max}-x_j}{x_{\max}-x_{\min}} xij=xmaxxminxmaxxj

其中 x j x_j xj为第 j 项指标值, x m a x x_{max} xmax为第 j 项指标的最大值, x m i n x_{min} xmin为第 j 项指标的最小值。

或者标准化处理:
x i j ′ = x i j − x ˉ j S j x'_{ij}=\frac{x_{ij}-\bar{x}_j}{S_j} xij=Sjxijxˉj

(3)计算比重

计算第 j 个指标中,第 i 个样本标志值的比重:
p i j = x i j ∑ i m x i j        , 0 ≤ p i j ≤ 1 p_{ij}=\frac{x_{ij}}{\sum_i^m{x_{ij}}}\,\,\,\,\,\,\text{,}0\le p_{ij}\le 1 pij=imxijxij0pij1
此,可以建立数据的比重矩阵
P = ( p 11 . . . p 1 n ⋮ ⋱ ⋮ p m 1 ⋯ p m n ) P=\left( \begin{matrix} p_{11}& ...& p_{1n}\\ \vdots& \ddots& \vdots\\ p_{m1}& \cdots& p_{mn}\\ \end{matrix} \right) P=p11pm1...p1npmn

(4) 计算第 j 个指标的熵值

e j = − k ∑ i m p i j ln ⁡ p i j e_j=-k\sum_i^m{p_{ij}}\ln p_{ij} ej=kimpijlnpij

其中,常数
k > 0 , k = 1 ln ⁡ m k>0\text{,}k=\frac{1}{\ln m} k>0k=lnm1
保证 0 ≤ e j ≤ 1 0\le e_j\le 1 0ej1,即 e j e_j ej最大为1

所以,第 j 个指标的熵值为
e j = − 1 ln ⁡ m ∑ i m p i j ln ⁡ p i j e_j=-\frac{1}{\ln m}\sum_i^m{p_{ij}}\ln p_{ij} ej=lnm1impijlnpij

(5)定义第 j 个指标的差异程度

熵值法根据各个指标标志值的差异程度来进行赋权,从而得出各个指标相应的权重

d j = 1 − e j d_j=1-e_j dj=1ej

(6)定义权重

w j = d j ∑ j = 1 n d j w_j=\frac{d_j}{\sum_{j=1}^n{d_j}} wj=j=1ndjdj

(7)进行综合评价

F i = ∑ j = 1 n w j p i j F_i=\sum_{j=1}^n{w_jp_{ij}} Fi=j=1nwjpij
其中 F i F_i Fi第 i 个待评价样本的综合评价值

语文数学英语音乐综合评价值F
张三50448590 F 1 F_1 F1
李四33742078 F 2 F_2 F2
王五46388810 F 3 F_3 F3
陈六65459851 F 4 F_4 F4
杨七13651245 F 5 F_5 F5

二、TOPSIS法

TOPSIS是通过逼近理想解的程度来评估各个样本的优劣等级

TOPSIS法的基本原理

在归一化后的原始数据矩阵中,找到有限方案中的最优方案和最劣方案,然后分别计算评价对象与最优方案和最劣方案之间的距离,并以此作为依据来评价样本的优劣等级。

基本步骤

假设有n个待评价样本,p项评价指标,形成原始指标数据矩阵:
X = ( x 11 . . . x 1 p ⋮ ⋱ ⋮ x n 1 ⋯ x n p ) X=\left( \begin{matrix} x_{11}& ...& x_{1p}\\ \vdots& \ddots& \vdots\\ x_{n1}& \cdots& x_{np}\\ \end{matrix} \right) X=x11xn1...x1pxnp

(1)数据预处理

  • .使指标具有同趋势性。评价指标中有正向指标和负向指标之分,一般把负向指标转化为正向指标,转化的方法可采用倒数法(即1/X),多适用于绝对数指标;差值法(即1-X),多适用于相对数指标。转化后的数据矩阵仍记为X。

  • .数据无量纲化.。将原始数据归一化,以消除量纲向量数据归一化的方式:
    z i j = x i j ∑ i x i j 2 z_{ij}=\frac{x_{ij}}{\sqrt{\sum_i^{}{x_{ij}^2}}} zij=ixij2 xij

最终得到分析数据矩阵
Z = ( z 11 z 12 ⋯ z 1 p z 21 z 22 ⋯ z 2 p ⋮ ⋮ ⋱ ⋮ z n 1 z n 2 ⋯ z n p ) Z=\left( \begin{matrix} z_{11}& z_{12}& \cdots& z_{1p}\\ z_{21}& z_{22}& \cdots& z_{2p}\\ \vdots& \vdots& \ddots& \vdots\\ z_{n1}& z_{n2}& \cdots& z_{np}\\ \end{matrix} \right) Z=z11z21zn1z12z22zn2z1pz2pznp

(2)寻找最优值和最劣值

找出各项指标的最优值和最劣值,建立最优值向量 z + z^+ z+和最劣值向量 z − z^- z
z + = max ⁡ n    j ( z 1 + , z 2 + , ⋯   , z p + ) z^+=\underset{n\ \ j}{\max}\left( z_1^+,z_2^+,\cdots ,z_p^+ \right) z+=n  jmax(z1+,z2+,,zp+)
z − = min ⁡ n    j ( z 1 − , z 2 − , ⋯   , z p − ) z^-=\underset{n\ \ j}{\min}\left( z_1^-,z_2^-,\cdots ,z_p^- \right) z=n  jmin(z1,z2,,zp)

(3)计算各个评价对象与最优值和最劣值之间的距离

D i + = ∑ j ( z i j − z j + ) 2 D_i^+=\sqrt{\sum_j^{}{\left( z_{ij}-z_j^+ \right) ^2}} Di+=j(zijzj+)2
D i − = ∑ j ( z i j − z j − ) 2 D_i^-=\sqrt{\sum_j^{}{\left( z_{ij}-z_j^- \right) ^2}} Di=j(zijzj)2

(4)计算各个评价指标与最优值的相对接近度

C i = D i − D i + + D i − C_i=\frac{D_i^-}{D_i^++D_i^-} Ci=Di++DiDi

(5)排序

根据 C i C_i Ci的大小进行排序, C i C_i Ci越大,表明评价对象越接近最优值。

三、熵值法 + TOPSIS法

.
可以结合熵值法 和 TOPSIS法各自的特点,进行评价。

假设有n个待评价样本,p项评价指标,形成原始指标数据矩阵:
X = ( x 11 . . . x 1 p ⋮ ⋱ ⋮ x n 1 ⋯ x n p ) X=\left( \begin{matrix} x_{11}& ...& x_{1p}\\ \vdots& \ddots& \vdots\\ x_{n1}& \cdots& x_{np}\\ \end{matrix} \right) X=x11xn1...x1pxnp

其中 X i j X_{ij} Xij 表示第 i 个样本第 j 项评价指标的数值。

(1)求比值

p i j = x i j ∑ i = 1 n x i j p_{ij}=\frac{x_{ij}}{\sum_{i=1}^n{x_{ij}}} pij=i=1nxijxij

(2)求熵值

e j = − 1 ln ⁡ n ∑ i = 1 n p i j ln ⁡ p i j   , e j ∈ [ 0 , 1 ] e_j=-\frac{1}{\ln n}\sum_{i=1}^n{p_{ij}\ln p_{ij}}\ \ \text{,}e_j\in \left[ 0,1 \right] ej=lnn1i=1npijlnpij  ej[0,1]

(3)信息冗余值

d j = 1 − e j d_j=1-e_j dj=1ej

(4)定权

w j = d j ∑ j = 1 p d j w_j=\frac{d_j}{\sum_{j=1}^p{d_j}} wj=j=1pdjdj

(5)归一化 (向量标准化)

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=1nxij2 xij

(6)构造加权矩阵

z i j ∗ = z i j ⋅ w j z_{ij}^*=z_{ij}\cdot w_j zij=zijwj

得到加权矩阵
Z ∗ = [ z 11 ⋅ w 1 z 12 ⋅ w 2 ⋯ z 1 p ⋅ w p z 21 ⋅ w 1 z 22 ⋅ w 2 ⋯ z 2 p ⋅ w p ⋮ ⋮ ⋱ ⋮ z n 1 ⋅ w 1 z n 2 ⋅ w 2 ⋯ z n p ⋅ w p ] Z^*=\left[ \begin{matrix} z_{11}\cdot w_1& z_{12}\cdot w_2& \cdots& z_{1p}\cdot w_p\\ z_{21}\cdot w_1& z_{22}\cdot w_2& \cdots& z_{2p}\cdot w_p\\ \vdots& \vdots& \ddots& \vdots\\ z_{n1}\cdot w_1& z_{n2}\cdot w_2& \cdots& z_{np}\cdot w_p\\ \end{matrix} \right] Z=z11w1z21w1zn1w1z12w2z22w2zn2w2z1pwpz2pwpznpwp

(7)寻找最优、最劣方案

{ z i j ∗ + = max ⁡ n , p ( z 1 ∗ + , z 2 ∗ + , ⋯   , z p ∗ + ) z i j ∗ − = min ⁡ n , p ( z 1 ∗ − , z 2 ∗ − , ⋯   , z p ∗ − ) \left\{ \begin{array}{l} z_{ij}^{*+}=\underset{n,p}{\max}\left( z_1^{*+},z_2^{*+},\cdots ,z_p^{*+} \right)\\ \\ z_{ij}^{*-}=\underset{n,p}{\min}\left( z_1^{*-},z_2^{*-},\cdots ,z_p^{*-} \right)\\ \end{array} \right. zij+=n,pmax(z1+,z2+,,zp+)zij=n,pmin(z1,z2,,zp)

(8)最优、最劣距离

D i + = ∑ j ( z i j ∗ − z j ∗ + ) 2 D_i^+=\sqrt{\sum_j^{}{\left( z_{ij}^*-z_j^{*+} \right) ^2}} Di+=j(zijzj+)2
D i − = ∑ j ( z i j ∗ − z j ∗ − ) 2 D_i^-=\sqrt{\sum_j^{}{\left( z_{ij}^*-z_j^{*-} \right) ^2}} Di=j(zijzj)2

(9)构造相对接近度

C i = D i − D i + + D i − C_i=\frac{D_i^-}{D_i^++D_i^-} Ci=Di++DiDi

(10)排序

根据 C i C_i Ci的大小进行排序, C i C_i Ci越大,表明评价对象越接近最优值。

  • 122
    点赞
  • 791
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值