熵权法是基于信息熵理论的客观赋权方法,是多指标综合评价领域应用最广泛的权重计算工具之一。它完全依靠指标数据本身的离散程度确定权重,避免了专家打分、层次分析法(AHP)等主观赋权法的人为偏差,在生态脆弱性评价、环境质量评估、经济绩效分析等领域被普遍采用。
一、核心原理:什么是“熵”和“熵权”
信息熵的通俗含义
“熵”原本是热力学中衡量系统无序程度的物理量,1948年香农将其引入信息论,提出信息熵:用来衡量信息的不确定性程度。
信息熵越大:指标数据越集中(所有评价对象的该指标值差异很小),说明这个指标能提供的区分信息越少,对评价结果的贡献越小;
信息熵越小:指标数据越离散(评价对象的该指标值差异很大),说明这个指标能提供的区分信息越多,对评价结果的贡献越大。
熵权的本质
熵权就是根据指标的信息含量分配的权重:某个指标的信息熵越小,说明它的离散程度越高,区分能力越强,对应的熵权就越大;反之则熵权越小。
举个简单例子:评价不同城市的生态脆弱性时,如果所有城市的“海拔”都差不多(数据集中),那么“海拔”这个指标几乎无法区分城市间的生态差异,熵权就很小;但如果“植被覆盖度(NDVI)”在不同城市差异极大(数据离散),那么它就能很好地区分生态好坏,熵权就很大。
二、熵权法是干什么的
熵权法的核心作用是为多指标综合评价体系中的各个指标分配客观权重,最终得到每个评价对象的综合得分。
解决的核心问题:避免主观赋权法中“专家个人偏好影响权重”的问题,让评价结果更贴合数据本身的特征;
典型应用场景:生态脆弱性评价(你提供的论文均用于SRP模型指标赋权)、水质评价、城市竞争力排名、企业绩效评估等所有需要多指标综合打分的场景。
三、完整计算步骤(附公式+示例)
假设有m个评价对象(如5个城市)、n个评价指标(如高程、坡度、NDVI、人口密度等),完整计算流程如下:
步骤1:构建原始数据矩阵
首先整理所有评价对象的指标数据,形成m行n列的原始矩阵X:
$$ X = (x_{ij})_{m \times n} = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \end{bmatrix} $$
其中 xij表示第i个评价对象的第j个指标的原始值。
步骤2:数据标准化(消除量纲影响)
由于不同指标的单位和量级差异极大(比如“人口密度”单位是人/km²,“NDVI”是0-1的数值),必须先标准化到[0,1]区间。根据指标对评价结果的影响方向,分为两类:
(1)正向指标(值越大,评价结果越好/越差,这里统一为“值越大,综合得分越高”)
比如生态评价中的“植被覆盖度”,值越高生态越好,综合得分越高。标准化公式:
$$ x'_{ij} = \frac{x_{ij} - \min(x_j)}{\max(x_j) - \min(x_j)} $$
(2)负向指标(值越大,评价结果越差)
比如生态评价中的“人口密度”,值越高生态压力越大,综合得分越低。标准化公式:
$$ x'_{ij} = \frac{\max(x_j) - x_{ij}}{\max(x_j) - \min(x_j)} $$
其中max(xj) 和min(xj) 分别是第j个指标在所有评价对象中的最大值和最小值。
步骤3:计算第j个指标下,第i个评价对象的比重
计算每个评价对象在该指标中的占比,反映其贡献度:
$$ p_{ij} = \frac{x'_{ij}}{\sum_{i=1}^{m} x'_{ij}} $$
⚠️ 特殊情况:如果某个指标的所有标准化值都为0(即所有评价对象的该指标值相同),则pij=0,此时ln0无意义,通常给pij 加一个极小值(如1e-10)避免计算错误。
步骤4:计算第j个指标的信息熵
$$ e_j = -k \sum_{i=1}^{m} p_{ij} \ln(p_{ij}) $$
其中常数 k =1/ln(m),保证信息熵的取值范围在[0,1]之间。
步骤5:计算第j个指标的信息效用值
信息效用值是指标的信息含量,等于1减去信息熵:
$$ d_j = 1 - e_j $$
dj 越大:指标的信息熵越小,离散程度越高,信息量越大;
dj = 0:指标的所有值都相同,没有任何信息量。
步骤6:计算第j个指标的熵权
将信息效用值归一化,得到最终权重:
$$ w_j = \frac{d_j}{\sum_{j=1}^{n} d_j} = \frac{1 - e_j}{\sum_{j=1}^{n} (1 - e_j)} $$
所有指标的权重之和为1($S_i = \sum_{j=1}^{n} w_j=1$)。
步骤7:计算每个评价对象的综合得分
$$ S_i = \sum_{j=1}^{n} w_j \cdot x'_{ij} $$
其中 Si 是第i个评价对象的综合得分,得分越高表示其在评价体系中的表现越好(或越差,取决于指标定义)。
四、简单计算示例
假设有3个城市(A、B、C),用2个指标评价生态脆弱性:
指标1:NDVI(负向指标,值越高脆弱性越低)
指标2:人口密度(正向指标,值越高脆弱性越高)
原始数据:
| 城市 | NDVI | 人口密度(人/km²) |
|---|---|---|
| A | 0.8 | 200 |
| B | 0.5 | 500 |
| C | 0.2 | 800 |
步骤1-2:标准化
(1)NDVI(负向):最大值0.8,最小值0.2
城市A: (0.8-0.8)/(0.8-0.2)=0
城市B: (0.8-0.5)/(0.8-0.2)=0.5
城市C: (0.8-0.2)/(0.8-0.2)=1
(2)人口密度(正向):最大值800,最小值200
城市A: (200-200)/(800-200)=0
城市B: (500-200)/(800-200)=0.5
城市C: (800-200)/(800-200)=1
标准化矩阵:
$$ X' = \begin{bmatrix} 0 & 0 \\ 0.5 & 0.5 \\ 1 & 1 \end{bmatrix} $$
步骤3:计算比重
(1)NDVI比重:
城市A: 0/(0+0.5+1)=0
城市B: 0.5/1.5≈0.333
城市C: 1/1.5≈0.667
(2)人口密度比重:与NDVI完全相同(数据分布一致)
步骤4:计算信息熵
k = 1/n(3)≈0.910
e1 = -0.910×(0×ln0 + 0.333×ln0.333 + 0.667×ln0.667)≈0.637
e2 = e1≈0.637(数据分布相同)
步骤5-6:计算权重
信息效用值:d1=d2=1-0.637=0.363
权重:w1=w2=0.363/(0.363+0.363)=0.5
步骤7:计算综合脆弱性得分
城市A: 0.5×0 + 0.5×0 = 0(脆弱性最低)
城市B: 0.5×0.5 + 0.5×0.5 = 0.5(中等脆弱)
城市C: 0.5×1 + 0.5×1 = 1(脆弱性最高)
五、熵权法的优缺点与改进方向
(1)优点
-
完全客观:权重完全由数据决定,避免人为干预,结果可重复;
-
逻辑严谨:基于信息论的成熟理论,数学推导严密;
-
适用性广:可用于任何多指标综合评价场景,尤其适合数据量较大的研究。
(2)缺点
-
忽略指标实际意义:只考虑数据离散程度,可能出现“实际很重要但数据差异小的指标权重过低”的情况(比如“生态保护红线占比”在所有地区都很高,但实际非常重要,熵权法会给它很低的权重);
-
对数据质量敏感:如果数据存在异常值或缺失值,会严重影响权重结果;
-
无法反映指标间的相关性:默认所有指标相互独立,若指标间存在强相关性,会导致权重重复计算。
(3)常用改进方向
-
组合赋权:与AHP、CRITIC等方法结合,平衡主客观权重;
-
改进标准化方法:采用极差标准化的改进版,或对异常值进行预处理;
-
结合地理探测器:先用地理探测器识别核心驱动因子,再用熵权法赋权,提升指标体系的科学性。