19熵值法确定权重
一、基本原理在信息论中,熵是对不确定性的一种度量。信息量越大,不确定
性就越小,熵也就越小;信息量越小,不确定性越大,熵也越大。根据熵的特性,可以通过计算熵值来判断一个事件的随机性及无
序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响(权重)越大,其熵值越小。
二、熵值法步骤
1选取
个国家,m个指标,则xij为第i个国家的第j个指标的数值(i12…
j12…m);
2指标的归一化处理:异质指标同质化
由于各项指标的计量单位并不统一,因此在用它们计算综合指标
前,先要对它们进行标准化处理,即把指标的绝对值转化为相对值,
并令xijxij,从而解决各项不同质指标值的同质化问题。而且,由于正向指标和负向指标数值代表的含义不同(正向指标数值越高越好,
负向指标数值越低越好),因此,对于高低指标我们用不同的算法进
行数据标准化处理。其具体方法如下
正向指标
xij
xijmi
x1jx2jx
jmaxx1jx2jx
jmi
x1jx2j
x
j
负向指标
fxij
maxx1jx2jx
jxijmaxx1jx2jx
jmi
x1jx2j
x
j
则xij为第i个国家的第j个指标的数值(i12…
j12…m)。为
了方便起见,归一化后的数据xij仍记为xij
3计算第j项指标下第i个国家占该指标的比重:
pij
xij
xij
i1
i12
j12m
4计算第j项指标的熵值:
ejkpijl
piji1
其中,k1l
0满足ej≥0
5计算信息熵冗余度:
dj1ej
6计算各项指标的权值:
wj
dj
m
dj
j1
7计算各国家的综合得分:
j12m
m
siwjpiji12
j1
三、Matlab实现按上述算法步骤,编写Matlab函数:sha
gm
fu
ctio
swsha
gx函数sha
g实现用熵值法求各指标列)的权重及各数据行的得分
fx为原始数据矩阵一行代表一个国家每列对应一个指标
s返回各行得分,w返回各列权重
msizex
23个国家m5个指标
数据的归一化处理
Matlab2010b2011ab版本都有bug需如下处理其它版本直接用
Xpsmapmi
maxx01即可Xpsmapmi
maxxpsymi
0002归一化后的最小值
psymax0996归一化后的最大值
psyra
gepsymaxpsymi
归一化后的极差若不调整该值则逆运算会出错
Xmapmi
maxxpsmapmi
maxreversexxps反归一化回到原数据
XX为归一化后的数据23行国家5列指标
计算第j个指标下,第i个记录占该指标的比重pijfori1
forj1m
pijXijsumXje
de
d计算第j个指标的熵值ejk1log
forj1m
ejksumpr