数学建模:熵权法(Matlab)

    熵权法是一种客观赋权方法,由香农(Shannon)引入信息技术,原理:根据各指标的变异程度,利用信息熵计算出各指标的熵权,从而得出较为客观的指标权重。(与之相对的是层次分析法,依靠专家打分,主观性强)

一.步骤

    设有n个评价对象,m个评价指标变量,第i个评价对象关于第j个指标的取值为a_{ij}(i=1,2,...,n;j=1,2,...,m),构造数据矩阵A=(aij))_{n*m}

1.利用原始数据矩阵A计算p_{ij},即第i个评价对象关于第j个指标值的比重:

数学建模:熵权法(Matlab)_第1张图片

 2.计算第j项指标的熵权:

数学建模:熵权法(Matlab)_第2张图片

 3.计算第j项指标的变异系数:

 4.计算第j项指标权重:

数学建模:熵权法(Matlab)_第3张图片

 二.例子:计算某条河流的政府水质报告的各个指标的权重

编号 指标1 指标2 指标3 指标4 指标5 指标6 指标7 指标8
1 100 6.6 86 83 8.7 82 80 8.8
2 86 4.2 61 61 7.5 87 70 7.2
3 65 9.8 94 71 6.1 86 80 6.5
4 97 7.2 98 61 9.3 66 88 9.6
5 89 6.3 87 63 5.8 64 96 9.8
6 63 6.5 91 93 8.1 80 99 5.6
7 73 7.5 90 88 8.2 99 82 7.1
8 82 9.7 76 73 8.6 73 65 7.3
9 99 8.2 86 98 7.9 83 66 8.5
10 68 9.9 67 61 9.2 69 70 8.6
a=readmatrix('D:\政府水质报告.txt');
[n,m]=size(a);
for j=1:m
    p(:,j)=a(:,j)/sum(a(:,j));
    e(j)=-sum(p(:,j).*log(p(:,j)))/log(n);
end
g=1-e; w=g/sum(g) %计算权重

权重结果如下:

 

你可能感兴趣的:(matlab,算法)