前言
本文已参与「新人创作礼」活动,一起开启掘金创作之路。在信息论中,熵是对不确定性的一种度量。一般来说,信息量越大,不确定性就越小,熵也就越小,信息的效用值越大;信息量越小,不确定性越大,熵也越大,信息的效用值越小。而熵值法就是通过计算各指标观测值的信息熵。根据各指标的相对变化程度对系统整体的影响来确定指标权重的一种赋权方法。
matlab实现熵值法
clc;clear;
x=[5 1.4 6 3 5 79 2 30 7 5 98 1.8 11 5 7 512 2.5 18 7 5 5];
lamda=[1,1,1,1,1,1];%---人为修权,1代表不修改计算后的指标权重
[m,n]=size(x);
for i=1:n
x(:,i)=(x(:,i)-min(x(:,i)))/(max(x(:,i))-min(x(:,i)))+1;%对原始数据进行非负数化、归一化处理,值介于1-2之间
end
for i=1:m
for j=1:n
p(i,j)=x(i,j)/sum(x(:,j));
end
end
k=1/log(m);
for i=1:m
for j=1:n
if p(i,j)~=0
e(i,j)=p(i,j)*log(p(i,j));
else
e(i,j)=0;
end
end
end
for j=1:n
E(j)=-k*sum(e(:,j));
end
d=1-E;
for j=1:n
w(j)=d(j)/sum(d);%指标权重计算
end
for j=1:n
w(j)=w(j)*lamda(j)/sum(w.*lamda);% 修改指标权重
end
for i=1:m
score(i,1)=sum(x(i,:).*w);%计算综合分数
end
disp('各指标权重为:')
disp(w)
disp('各品牌综合分数为:')
disp(score)
优点:熵值法是根据各项指标指标值的变异程度来确定指标权数的,这是一种客观赋权法,避免了人为因素带来的偏差。 缺点:忽略了指标本身重要程度,有时确定的指标权数会与预期的结果相差甚远,同时熵值法不能减少评价指标的维数!