熵权法介绍

  • 原理:指标的变异程度越小,所反映的信息量也越少,其对应的权值也应该越低。(客观 = 数据本身就可以告诉我们权重)
  • 如何度量信息量的大小?
  • 熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_学习表示信息量,熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_矩阵_02表示概率,那么我们可以将它们建立一个函数关系。
  • 假设熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_矩阵_03表示事件熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_权值_04可能发生的某种情况,熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_权值_05表示这种情况发生的概率,我们可以定义熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_矩阵_06,因为熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_矩阵_07,所以熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_学习_08.
  • 信息熵的定义
  • 如果事件熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_权值_04可能发生的情况分别为:熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_信息熵_10,那么我们可以定义事件熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_权值_04的信息熵为:熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_矩阵_12从上面的公式可以看出,信息熵的本质就是对信息量的期望值.
  • 可以证明的是,当熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_权值_13时,熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_熵权法TOPSISPython代码实现_14取最大值,此时熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_学习_15
  • 信息熵越大,信息量越小

熵权法的计算步骤

  1. 判断输入的矩阵中是否有负数,有则要重新标准化到非负区间.
    如果有负数,则用另一种标准化方法,标准化公式为:熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_矩阵_16
  2. 计算第熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_信息熵_17项指标下第熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_熵权法TOPSISPython代码实现_18个样本所占的比重,并将其看作相对熵计算中用到的概率
    概率计算公式如下:熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_熵权法TOPSISPython代码实现_19
  3. 计算每个指标的信息熵,并计算信息效用值,并归一化得到每个指标的熵权.
    对于第熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_信息熵_17个指标而言,其信息熵的计算公式为:熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_学习_21
    信息效用值的定义:熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_学习_22,那么信息效用值越大,其对应的信息就越多
    将信息效用值归一化,得到每个指标的熵权:熵权法TOPSISPython代码实现 熵权法和熵权topsis区别_学习_23

熵权法的缺点

有的指标的方差很小,但是对结果有很大影响,用熵权法就不恰当

熵权法代码

function [W] = Entropy_Method(Z)
	[n,m] = size(Z);
	D = zeros(1,m); %初始化用来保存信息效用值的行向量
	for i = 1:m
		x = Z(:,i); %取出第i列的指标
		p = x / sum(x); %归一化
		e = -sum(p .* mylog(p)) / log(n); %计算信息熵
		%mylog函数是对log函数的修改,当p为0时,mylog函数返回0
		D(i) = 1 - e;
	end
	W = D ./ sum(D); %将信息效用值归一化得到熵权
end

如果有负数,需要重新标准化

if sum(sum(Z<0)) > 0 %判断是否有负数
	for i = 1:n
		for j = 1:m
			Z(i,j) = [X(i,j) - min(X(:,j))] / [max(X(:,j)) - min(X(:,j))]
		end
	end
end