熵值法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

熵值法

1 基本原理

在信息论中,熵是对不确定性的一种度量。信息量越大,不确定性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。根据熵的特性,我们可以通过计算熵值来判断一个事件的随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响越大。

2、熵值法步骤

⑴选取n 个国家,m 个指标,则ij x 为第i 个国家的第j 个指标的数值。(i=1,2…,n; j=1,2,…,m )

(2) 指标的标准化处理:异质指标同质化

由于各项指标的计量单位并不统一,因此在用它们计算综合指标前,我们先要对它们进行标准化处理,即把指标的绝对值转化为相对值,并令ij ij x x =,从而解决各项不同质指标值的

同质化问题。而且,由于正向指标和负向指标数值代表的含义不同(正向指标数值越高越好,负向指标数值越低越好) ,因此,对于高低指标我们用不同的算法进行数据

标准化处理。其具体方法如下:

正向指标: 12'

1212m in (,,...,)100m ax (,,...,)m in (,,...,)ij j j n j ij j j n j j j n j x x x x x x x x x x x ⎡⎤-=⨯⎢⎥-⎢⎥⎣⎦ 负向指标: 12'1212m ax (,,...,)100m ax (,,...,)m in (,,...,)j j n j ij

ij j j n j j j n j x x x x x x x x x x x ⎡⎤-=⨯⎢

⎥-⎢⎥⎣⎦ 则'ij x 为第i 个国家的第j 个指标的数值。(i=1,2…,n; j=1,2,…,m )。为了方便起见,仍记数

据'ij ij x x =。

(3)计算第j 项指标下第i 个国家占该指标的比重:

1,(1,2...,,1,2...,)ij ij n ij

i X p i n j m X ====∑

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

1

ln ()n

j ij ij i e k p p ==-∑,其中,0k >,1/ln ()k n =,0j e ≥

(5)计算第j 项指标的差异系数。对第j 项指标,指标值的差异越大,对方案评价的左右就越大,熵值就越小,定义差异系数:

1j j e e g m E -=-,式中1m e j j E e ==∑,01i g ≤≤,1

1m j j g ==∑ (6):求权值:

1(1)j j m j j g w j m g

==≤≤∑

(7):计算各国家的综合得分:

1(1,2,...)m

i j ij j s w p i n ==∙=∑

熵值法MATLAB 代码

(2009-08-18 22:33:20)

转载

标签: 熵值法

教育

分类: 熵值法

function shang(x)

[n,m]=size(x);

k=1/log(n);

X=zeros(n,m);

for j=1:m

for i=1:n

c=sort(x(:,j));

big=x(n,j);

small=x(1,j);

X(i,j)=(x(i,j)-small)/(big-small)+1; end

end

for j=1:m

th=0;

for t=(X(:,1))'

th=th+t;

end

Ph=X(:,j)/th;

p=[p Ph];

end

e=[];

for j=1:m

eg=0;

for i=1:n

eh=-k*p(i,j)*log(p(i,j));

eg=eg+eh;

end

e=[e,eg];

end

E=0;

for j=1:m

E=E+e(j);

end

for j=1:m

gh=(1-e(j))/(m-E);

g=[g,gh];

end

Eh=0;

for nh=g

Eh=Eh+nh;

end

w=[];

for j=1:m

wh=g(j)/Eh;

w=[w,wh];

end

s=[];

for i=1:n

sh=w(i)*p(i,:);

shen=0;

for she=sh

shen=shen+she;

end

s=[s ,shen];

相关文档
最新文档