由于层次分析法的主观性太强,判断矩阵的确定依赖于专家(事实上比赛时都是靠自己的感觉来),自己的主观判断对结果的影响是很大的,故引入熵权法,更加客观的计算权重。
熵是对不确定性的一种度量,从某种角度来看:
不确定性越大,熵就越大,包含的信息量越大,对应的权重越高;
不确定性越小,熵就越小,包含的信息量越小,对应的权重越低。
一、理论步骤
1. 指标正向化 + 标准化
正向化、标准化的具体步骤可见:Topis模型
2. 每个元素所占比重(比重之和为1,即对标准化后的矩阵归一化)
计算概率矩阵P:
3. 计算每个指标的信息熵e(不确定度)
对于第 j 个指标而言:
4. 计算变异系数
对于第 j 个指标而言,其信息熵 ej 越大,变异系数 gj 越小,则代表第 j 个指标的信息越少
5. 计算第 j 个指标的权重
6. 计算综合评分
二、代码
其中A矩阵需要正向化,并且每列代表一个评价的指标
clc,clear;
A=[0.043929512 305 462.86503 151.7590262 310.4689 106
0.043618371 305 466.16677 152.8415639 320.0411 110
0.043255163 305 470.08111 154.1249541 324.0803 112
0.04222088 300 473.70164 157.9005467 317.7966 110
0.041277939 295 476.44736 161.5075797 313.9846 109
0.04106454 295 478.9233 162.3468814 307.261 107];
[n,m]=size(A);
for j=1:m
C(:,j)=(A(:,j)-min(A(:,j)))./(max(A(:,j))-min(A(:,j)));
end
for i=1:n
for j=1:m
P(i,j)=C(i,j)./sum(C(:,j));
end
end
for i=1:n
for j=1:m
if P(i,j)==0
P(i,j)=1E-6
end
end
end
for j=1:m
e(j)=(-1/log(n))*sum(P(:,j).*log(P(:,j)));
end
d=1-e
for j=1:m
w(j)=d(j)/sum(d)
end
s=w*P';s=s';
[ssort,id]=sort(s,'descend')
s,id