熵权法-EWM
熵权法-EWM
背景
一种常见于数学建模的更为客观的分配权重的方法, 因为层次分析法主观性太强,专家打分实际上就是自己瞎几把打,故引入熵权法。
思路
对于一组数据指标,如果它的方差越大,就说明这个数据的相似度越小,就是它所贡献度就越大。极端来看,就如果对于某项指标来讲,他的所有的值是一样的,那么它的相似度是最大的,基于这个指标来进行判别的权重可以直接设为0。熵是不确定度的一种度量,不确定性越大,熵就越大,信息量就越大,它的对最终决策的影响权重应该就设置得更高一些。
举个清风数学建模的例子,小张和小王是两个高中生,小张学习好回回期末考满分,小王学习不好考试常常不及格。在一次考试中,小张还是考了满分,而小王也考了满分。那就很不一样了,小王这里包含的信息就非常大,所对应的权重也就高一些。
定义
信息量
定义信息量为:
$$
I(x) = -\ln(p(x))
$$信息熵
定义信息熵为各信息量的期望值:
$$
H(X) = -\sum_{i=1}^{n} p(x_i)\ln(p(x_i))
$$
当所有事件均等时,熵达到最大值:
$$
H(X) = \ln(n)
$$
计算步骤
熵权法主要包括以下三个步骤:
数据标准化
假设有个对象和个指标,原始数据构成矩阵(要先正向化):
$$
X = \begin{bmatrix}
x_{11} & x_{12} & \cdots & x_{1m} \
x_{21} & x_{22} & \cdots & x_{2m} \
\vdots & \vdots & \ddots & \vdots \
x_{n1} & x_{n2} & \cdots & x_{nm}
\end{bmatrix}
$$
正向化处理
- 要求:后续计算概率时,每个元素必须为非负值。
- 处理:如果其中存在负数,则需采用特定方法将其标准化到 [0,1] 区间。
| 指标名称 | 指标特点 | 例子 |
|---|---|---|
| 极大型指标(正向指标) | 越大越好 | 成绩、利润、GDP增速 |
| 极小型指标(负向指标) | 越小越好 | 花费、污染程度、失业率 |
| 中间型指标 | 越接近某个值越好 | 水质量评估时的PH值 |
| 区间型指标 | 落在某个区间最好 | 体温、水中某物质含量 |
- 极小型转极大型:
$$
x_i = \max{x_1, x_2, …, x_i} - x_i
$$
注:若所有元素均为正数,可以直接取倒数。
- 中间行转极大型:
中间型指标序列,且最佳数值为 $x_{best}$,$x_{new}$ 为正向化之后的极大型指标,正向化公式:
$$
M = \max{|x_i - x_{best}|}
$$
$$
x_{new} = 1 - \frac{|x_i - x_{best}|}{M}
$$
- 区间型转极大型:
区间型指标序列,且最佳数值为 $x_{best}$,$x_{new}$ 为正向化之后的极大型指标,正向化公式:
$$
M = \max{a - \min{x_i}, \max{x_i} - b}
$$
$$
x_{new} =
\begin{cases}
1 - \frac{a - x}{M}, & x < a \
1, & a \leq x \leq b \
1 - \frac{x - b}{M}, & x > b
\end{cases}
$$
标准化方法
方法一(适用于无负数情况):
$$
z_{ij} = \frac{x_{ij}}{\sqrt{\sum_{i=1}^{n} x_{ij}^2}}
$$方法二(存在负数时):
$$
z_{ij} = \frac{x_{ij} - \min{x_{1j}, x_{2j}, \ldots, x_{nj}}}{\max{x_{1j}, x_{2j}, \ldots, x_{nj}} - \min{x_{1j}, x_{2j}, \ldots, x_{nj}}}
$$
计算概率矩阵
从标准化矩阵出发,计算各样本在每个指标下所占的比重,构成概率矩阵:
$$
p_{ij} = \frac{z_{ij}}{\sum_{i=1}^{n} z_{ij}}
$$
这样确保每一列(每个指标)的概率和为1。
计算信息熵与熵权
计算信息熵
计算信息熵:
$$
e_j = -\frac{1}{\ln n} \sum_{i=1}^{n} p_{ij}\ln(p_{ij}) \quad (j=1,2,\ldots,m)
$$
注意:当 $p_{ij}=0$ 时,约定 $\ln(0)=0$ 。
这里除以 $\ln n$ 使得 $e_j$ 被归一化到 $[0,1]$ 区间。
计算信息效用值
定义信息效用值 $d_j$ 为:
$$
d_j = 1 - e_j
$$
信息效用值越大,表示该指标包含的信息越多。
归一化得熵权
最终,将各指标的信息效用值归一化,得到熵权 $\omega_j$:
$$
\omega_j = \frac{d_j}{\sum_{j=1}^{m} d_j} \quad (j=1,2,\ldots,m)
$$
得分
$$
score_i = \sum_{j=1}^{m} w_{j}z_{ij} \quad (i=1,2,\ldots,n)
$$
示例代码
(转自这篇帖子)
1 | |
扩展
- 修正TOPSIS法:可利用熵权法修正TOPSIS法,使决策更加客观。
- 主客观权重综合:将客观赋权(熵权法)与主观赋权相结合,可获得更合理的权重分配。
- 其他客观赋权方法:例如灰色关联分析法也可作为计算权重的方法。
- 标准化方法选择:不同的标准化方法会得到不同的 (Z) 矩阵,需根据实际情况选择合适方法。
模型总结
- 第一步:检查输入矩阵中是否存在负数,并进行必要的标准化处理,确保数据非负。
- 第二步:计算每个指标下每个样本的比重,构成概率矩阵。
- 第三步:利用概率矩阵计算各指标的信息熵,然后计算信息效用值,最后归一化得到各指标的权重。