熵值法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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];