DEA模型复现介绍:Shannon 熵提高DEA判别力综合效率评价模型
DEA模型复现介绍:Shannon熵提高DEA判别力的综合效率评价模型
一、论文基本信息
论文题目: Increasing the Discriminatory Power of
DEA Using Shannon's Entropy
期刊: Entropy
年份: 2014
卷期页码: 16, 1571–1585
作者: Qiwei Xie, Qianzhi Dai, Yongjun Li, An Jiang
这篇文章讨论的是 DEA 里一个很典型、又有点“两难”的问题:
当变量数量相对于决策单元(DMU)数量过多时,传统 DEA 的判别力会急剧下降,很多 DMU 都被判成“有效”,无法区分、无法完整排序。如何在不丢失变量信息的前提下,把判别力提上来?
这正是本文要解决的问题,答案就是——用 Shannon 熵做“加权聚合”。
二、这篇文章解决了什么问题?
传统 DEA(以 CCR 为例)允许每个 DMU 在约束下自由选择对自己最有利的权重来最大化自身效率。这样带来的副作用是:
变量越多,权重空间的维数越高,越容易有更多 DMU 被判定为有效,DEA 的“判别力”就越差。
经验法则是:变量数应小于 DMU 数的 1/3。但现实里大量场景(如学校院系、酒店、环保城市、银行等)变量数都明显超过这个比例,导致:
- 传统 DEA 结果是“一大片 1”,无法排序;
- 只靠单一的全变量模型做判断,风险很大——因为你很难确定究竟该选哪些变量来描述生产过程。
过去提升判别力的方法主要有两类,但都有局限:
- 扩大 DMU 数量:用面板数据,但假设了“无技术进步”,实践中常常不成立;
- 压缩变量维度:用 PCA(主成分分析)或变量缩减(VR)方法,但这会丢失原始变量信息,结果也更“不透明”(难以反推每个原始变量的贡献)。
这篇文章提出 Shannon熵综合效率 DEA,核心改进可以概括为一句话:
把所有可能的变量子组合都拿来算 DEA,再用 Shannon 熵给每个子组合定权,最后加权得到一个“综合效率得分 CES”。
这样既不丢任何变量信息,又显著提高了判别力。
三、Shannon熵DEA的核心思想与数学模型
设共有 \(n\) 个 DMU,每个 DMU 消耗 \(m\) 个投入(输入)、产出 \(s\) 个产出(输出)。变量子组合的总数记为:
\[ K = (2^m - 1)(2^s - 1) \]
理论上一套 DEA 模型至少要有 1 个投入、1 个产出,因此对投入集合 \(M\) 与产出集合 \(S\) 分别取非空子集,就能得到 \(K\) 种组合。对本文的算例(\(m=3, s=2\)):
\[ K = (2^3 - 1)(2^2 - 1) = 7 \times 3 = 21 \]
3.1 每一个子组合都用 CCR 模型求效率
对第 \(k\) 种变量组合,记其对应模型为 \(\mathcal{M}_k\),基于投入导向、规模报酬不变(CRS) 的 CCR 模型(本文用乘子模型形式)。被评价的 DMU 记为 \(d\),其效率 \(E_{dk}\) 由下面这个线性规划给出:
\[ \begin{aligned} \max & \sum_{r=1}^{s} u_r y_{rd} \\ \text{s.t.} & \sum_{i=1}^{m} v_i x_{id} = 1, \\ & \sum_{r=1}^{s} u_r y_{rj} - \sum_{i=1}^{m} v_i x_{ij} \le 0, \quad j = 1,\dots,n, \\ & u_r \ge 0, v_i \ge 0, \quad r=1,\dots,s, i=1,\dots,m . \end{aligned} \]
其中 \(u_r\) 是产出权重、\(v_i\) 是投入权重,\(x_{ij}\) 与 \(y_{rj}\) 分别是第 \(j\) 个 DMU 的第 \(i\) 个投入与第 \(r\) 个产出。把 \(K\) 个子组合各求解一次,就得到一张 \(n \times K\) 的效率矩阵:
\[ E = [E_{jk}]_{n \times K} \]
3.2 用 Shannon 熵给每个子组合定权(六步法)
Step 1 求效率矩阵 \(E\)(即上面 \(K\) 次 CCR 求解的结果)。
Step 2 对每一列做归一化:
\[ e_{jk} = \frac{E_{jk}}{\sum_{j=1}^{n} E_{jk}}, \qquad k = 1,\dots,K \]
Step 3 计算第 \(k\) 个子组合的 Shannon 熵:
\[ f_k = -\frac{1}{\ln n} \sum_{j=1}^{n} e_{jk} \ln e_{jk}, \qquad k = 1,\dots,K \]
Step 4 计算差异度(多样化程度):
\[ d_k = 1 - f_k, \qquad k = 1,\dots,K \]
Step 5 归一化得到权重:
\[ W_k = \frac{d_k}{\sum_{k=1}^{K} d_k}, \qquad k = 1,\dots,K \]
并满足 \(\sum_{k=1}^K W_k = 1\)。
Step 6 求综合效率得分:
\[ \theta_j = \text{CES}_j = \sum_{k=1}^{K} W_k \cdot E_{jk}, \qquad j = 1,\dots,n \]
3.3 两条重要性质(定理)
定理 1: 熵值与“该子集下各 DMU 效率的差异程度”负相关。若某子集下所有 DMU 效率都相等,则该子集得到的权重最小。
定理 2: DMU 的 \(\text{CES}=1\)(综合有效)当且仅当它在所有变量子组合下都有效。
定理 2 直接说明了为什么这套方法能提升判别力:某些 DMU 在一个子集下有效、在另一个子集下无效,那么它的 CES 一定小于 1。只有当某个 DMU 在所有子集下都有效时,它才是综合有效的。因此在大多数情况下,很难同时出现两个(或更多)综合有效的 DMU。
注意:这套“加权聚合”框架并不依赖具体的 DEA 模型——既可以是 CRS 也可以是 VRS,既可以投入导向也可以产出导向。本文算例只是用投入导向 CRS(CCR-I)来演示。
四、这个模型相比已有方法好在哪?
如果只讲最值得公众号读者关注的几点,我认为有三点:
1. 不丢变量信息,判别力却更强
PCA、变量缩减(VR)这类方法要“砍变量”,会损失信息。这个方法把所有变量子组合都纳入,不砍任何一个变量。
2. 判别力有理论保证
由定理 2,传统 DEA 若无法区分两个有效 DMU,则这套方法必然也不弱于它;在很多情况下能给出更明确的排序。
3. 通用性好、可移植性强
只要能算出效率,就能用这个框架聚合。它不绑定 CRS/VRS 或投入/产出导向,也能适配含非期望产出等各类 DEA 模型。
五、这篇文章适合哪些应用场景?
只要存在“变量数相对 DMU 数偏多、传统 DEA 判别不出排名”的情形,就值得用这套方法。例如:
- 用较多指标评价数量较少的对象(如院系、酒店、城市、银行);
- 无法确定该选哪些变量、又不想放弃部分变量信息;
- 希望得到完整、稳定、可横向比较的排名;
- 需要同时兼顾变量信息完整性与评价判别力的评估任务。
六、这次复现做了什么?
这次我基于论文给出的例1(简单数据集),使用:
- Julia
- JuMP
- GLPK
完成了文献中的小样例复现。
复现过程分成三步:
- 生成全部 \((2^m-1)(2^s-1)=21\) 种变量子组合;
- 对每种组合用投入导向 CRS(CCR-I) 乘子模型求效率,拼成 \(n \times K\) 效率矩阵;
- 按论文六步法计算 Shannon 熵权重 \(W_k\) 与综合效率得分 \(\text{CES}_j\)。
其中有一个很关键的细节:
工作目录里的
matlab.txt数据是错的(DMU4、DMU5 的投入/产出值写错)。只有用论文表1的正确数据才能对上论文的表2、表3。
也正因为确认了这一点,最终表2、表3 都顺利与论文结果一致。
七、复现结论
本次复现确认:
- 表2(全部子组合效率与权重 Wk)可复现;
- 表3(综合效率得分 CES)可复现;
- 论文给出的数据与结果,足以支持 Julia + JuMP 的模型复现。
从方法理解上看,这篇文章最值得把握的不是某项复杂公式,而是这条主线:
先把所有变量子组合分别用 DEA 算出效率,再用 Shannon 熵定权,最后加权得到一个判别力更强的综合效率得分 CES。
下面两张表分别给出权重(表2)与综合效率得分(表3)的“论文 vs 程序”对比(四舍五入到 5 位小数)。
表2:全部 21 个子组合的权重 Wk(按权重降序,节选)
| Mk | 变量组合 X1X2X3·Y1Y2 | 论文 Wk | 程序 Wk | 差值(程序-论文) | 是否一致 |
|---|---|---|---|---|---|
| 1 | 001·01 | 0.11103 | 0.11103 | 0 | 是 |
| 5 | 010·01 | 0.09195 | 0.09195 | 0 | 是 |
| 8 | 100·10 | 0.06689 | 0.06689 | 0 | 是 |
| 15 | 111·10 | 0.01707 | 0.01707 | 0 | 是 |
| 21 | 111·11 | 0.00777 | 0.00777 | 0 | 是 |
(完整 21 行见 Excel 文件 entropy_dea_results.xlsx
的“表2_子集与权重”工作表。)
表3:综合效率得分 CES 与其它 DEA 模型对比
| DMU | 论文 CES | 程序 CES | 差值(程序-论文) | 是否一致(5位) | 传统CCR | GCE | SuperCCR | SBM |
|---|---|---|---|---|---|---|---|---|
| 1 | 0.47997 | 0.47997 | 0 | 是 | 0.68571 | 0.6384 | 0.68571 | 0.47619 |
| 2 | 0.83347 | 0.83347 | 0 | 是 | 1.00000 | 0.97664 | 1.12 | 1.00000 |
| 3 | 0.99283 | 0.99283 | 0 | 是 | 1.00000 | 1.00000 | 1.50 | 1.00000 |
| 4 | 0.41582 | 0.41582 | 0 | 是 | 0.85714 | 0.79878 | 0.85714 | 0.32179 |
| 5 | 0.69064 | 0.69064 | 0 | 是 | 0.85714 | 0.66703 | 0.85714 | 0.56863 |
(CES 最大绝对误差约 4.4e-6,仅为论文保留 5 位小数的舍入差。CCR/GCE/SuperCCR/SBM 为论文中用于对比的其它 DEA 模型,本复现未单独计算。)
复现要点:
- 程序 CES 与论文 CES 逐点一致,排名为:DMU3 > DMU2 > DMU5 > DMU1 > DMU4。
- 传统 CCR 下 DMU2、DMU3 同为 1,无法区分;CES 把二者拉开(DMU3=0.99283 > DMU2=0.83347),体现“判别力提升”。
如果需要,请联系微信canglang12002 任公子


