熵权法(the Entropy Weight Method)以及MATLAB实现

按照信息论基本原理的解释,信息是系统有序程度的一个度量,熵是系统无序程度的一个度量;如果指标的信息熵越小,该指标提供的信息量越小,在综合评价中所起作用理当越小,权重就应该越低。因此,可利用信息熵这个工具,计算出各个指标的权重,为多指标综合评价提供依据。

物理意义

物质微观热运动时,混乱程度的标志。热力学中表征物质状态的参量之一,通常用符号S表示。在经典热力学中,可用增量定义为dS=(dQ/T),式中T为物质的热力学温度;dQ为熵增过程中加入物质的热量;下标“可逆”表示加热过程所引起的变化过程是可逆的。若过程是不可逆的,则dS>(dQ/T)不可逆。单位质量物质的熵称为比熵,记为s。熵最初是根据热力学第二定律引出的一个反映自发过程不可逆性的物质状态参量。热力学第二定律是根据大量观察结果总结出来的规律,有下述表述方式:①热量总是从高温物体传到低温物体,不可能作相反的传递而不引起其他的变化;②功可以全部转化为热,但任何热机不能全部地、连续不断地把所接受的热量转变为功(即无法制造第二类永动机);③在孤立系统中,实际发生的过程,总使整个系统的熵值增大,此即熵增原理。摩擦使一部分机械能不可逆地转变为热,使熵增加。热量dQ由高温(T1)物体传至低温(T2)物体,高温物体的熵减少dS1=dQ/T1,低温物体的熵增加dS2=dQ/T2,把两个物体合起来当成一个系统来看,熵的变化是dS=dS2-dS1>0,即熵是增加的。

不同意义

◎ 物理学上指热能除以温度所得的商,标志热量转化为功的程度。
◎ 科学技术上泛指某些物质系统状态的一种量(liàng)度,某些物质系统状态可能出现的程度。亦被社会科学用以借喻人类社会某些状态的程度。
◎ 在信息论中,熵表示的是不确定性的量度。
熵权法是一种客观赋权方法。它十分复杂,计算步骤如下:
  1. 构建各年份各评价指标的判断矩阵:
  2. 将判断矩阵进行归一化处理, 得到归一化判断矩阵:
  3. 根据熵的定义,根据各年份评价指标,可以确定评价指标的熵。
  4. 定义熵权。定义了第n个指标的熵后,可得到第n个指标的熵权。
  5. 计算系统的权重值。 

 MATLAB实现代码如下:

 1 % 初始数据矩阵R
 2 R=xlsread("C:\Users\PC\Desktop\数据.xlsx");
 3 % 输入矩阵的大小,rows为对象个数,cols为指标个数
 4 [rows,cols]=size(R);   
 5 k=1/log(rows);         % 求k
 6 Rmin = min(R);
 7 Rmax = max(R);
 8 A = max(R) - min(R);
 9 y = R - repmat(Rmin,2033,1);
10 for j = 1 : size(y,2)
11      y(:,j) = y(:,j)/A(j);
12 end
13 % 求Y(i,j)
14 S = sum(y,1);
15 Y = zeros(rows,cols); 
16 for i = 1 : size(Y,2)
17     Y(:,i) = y(:,i)/S(i);
18 end
19 % 初始化lnYij
20 lnYij=zeros(rows,cols);  
21 % 计算lnYij
22 for i=1:rows
23     for j=1:cols
24         if Y(i,j)==0
25             lnYij(i,j)=0;
26         else
27             lnYij(i,j)=log(Y(i,j));
28         end
29     end
30 end
31 % 计算熵值Hj
32 ej=-k*(sum(Y.*lnYij,1)); 
33 weights=(1-ej)/(cols-sum(ej));
34 F = zeros(rows,cols);
35 for k = 1 : size(R,2)
36      F(:,k) = weights(k)*y(:,k);
37 end
38 format long
39 % F即为对变量进行熵权法客观赋权后,计算获得的综合评分
40 F = sum(F,2) ;

 

posted @ 2019-06-15 20:32  wydxry  阅读(3198)  评论(0编辑  收藏  举报
Live2D