指标太多,DEA还怎么用?一种能自动‘挑变量’的进攻型方法
指标太多,DEA还怎么用?一种能自动“挑变量”的进攻型方法
做效率评价的人,几乎都遇到过这个尴尬。
明明想用数据包络分析(DEA)给一批对象打分,可指标一多,问题就来了:大家都变成有效了,分数全在 1 附近,谁也分不出高下。
这不是你不会用,而是 DEA 天生的毛病。它需要指标少、样本多,才有判别力。可实际情况往往反着来——评价对象就那么几十个,候选指标倒有上百个。
过去遇到这种情况,要么靠专家经验拍脑袋删指标,要么用主成分分析、相关系数这类统计办法做降维。但这些做法要么主观,要么跟 DEA 的初衷脱节。
今天想聊的,是把“选哪些指标”这件事直接做进 DEA 里的一种办法。它来自 2026 年发在 Expert Systems With Applications 上的一篇论文,叫 ACDEA,进攻型集中式 DEA 变量选择。
一、它的立场:进攻,而不是讨好
先看它跟传统做法最大的不同。
DEA 里常见的变量选择多是“仁慈型”——让每个评价对象挑对自己最有利的指标,尽量把大家都显得有效率。可大家都高效了,排名还有什么意义?判别力反而被牺牲。
ACDEA 反其道而行,走的是进攻型路线:专门挑那些最能暴露对象之间差距、最能拉开高低的指标。逻辑也很顺——既然 DEA 的本质就是找无效率,那变量选择就该尽量把无效率暴露出来,让判别力最大化。
一句话概括它的目标:
从一堆输入、输出指标里,自动挑出最能区分好坏的那几个,再用它们算效率分和排名。
二、它把问题拆成了两层
要用好一个方法,得先清楚它到底在算什么。ACDEA 的聪明之处,是把“选变量”这个组合问题,跟“给定变量后怎么评无效率”这个线性问题,拆成了两层。
先把记号摆出来。设输入指标为 \(i\),输出指标为 \(k\),评价对象(DMU)为 \(j, r\),一共有 \(n\) 个对象,\(x_{ij}\) 是第 \(j\) 个对象在第 \(i\) 个输入上的取值,\(y_{kj}\) 是输出取值。用两个二值变量表示选还是没选:\(\delta^x_i\)、\(\delta^y_k\),取值 1 表示选中。
给定一组选中的输入输出,评价这一组“够不够会区分好坏”的,是下面这个集中式 SBI-DEA 问题,它最大化样本整体的无效率:
\[ \text{SBI}(\delta^x,\delta^y) \;=\; \max \; \frac{1}{q}\left(\sum_{i:\delta^x_i=1}\frac{S^x_i}{X_i^{\text{tot}}} \;+\; \sum_{k:\delta^y_k=1}\frac{S^y_k}{Y_k^{\text{tot}}}\right) \]
约束是让所有对象一起投影到同一套前沿上:
\[ \sum_j \hat\lambda_j\, x_{ij} \;=\; X_i^{\text{tot}} - S^x_i \quad (\delta^x_i=1),\qquad \sum_j \hat\lambda_j\, y_{kj} \;=\; Y_k^{\text{tot}} + S^y_k \quad (\delta^y_k=1) \]
\[ \sum_j \hat\lambda_j = n,\qquad \hat\lambda_j \ge 0,\qquad S^x_i,\,S^y_k \ge 0 \]
其中 \(X_i^{\text{tot}}=\sum_r x_{ir}\)、\(Y_k^{\text{tot}}=\sum_r y_{kr}\) 是全体对象在该指标上的总量,\(\hat\lambda_j\) 是聚合后的强度变量,\(S^x_i\)、\(S^y_k\) 是松弛量,\(q\) 是当前选中的指标个数。
这里用了一个细节:衡量松弛时,分母用的是该指标的平均值,也就是方向向量取算术平均:
\[ g^x_i \;=\; \bar x_i \;=\; \frac{1}{n}\sum_r x_{ir},\qquad g^y_k \;=\; \bar y_k \;=\; \frac{1}{n}\sum_r y_{kr} \]
于是“选哪几个指标”就变成了一个双层结构:
- 上层:在二值选择变量 \(\delta^x,\delta^y\) 上搜索,这是个组合问题,指标一多就爆炸,论文用迭代局部搜索(ILS)去逼近;
- 下层:对每个候选的指标组合,解上面那个 LP,得到它的无效率 \(\text{SBI}\),作为上层打分的依据。
\[ \max_{\delta^x,\delta^y}\; \text{SBI}(\delta^x,\delta^y) \quad\text{s.t.}\quad \sum_i\delta^x_i+\sum_k\delta^y_k = q \]
因为 \(\text{SBI}\) 越大,说明这组指标越会区分优劣,所以上层目标就是让它最大——这就是“进攻”在数学上的落点。
三、从“选变量”到“算分数”
选完变量,还得算出每个对象到底多少分。这一步用的是传统的非集中式 DEA,对每个对象单独投影一次,得到它的无效率:
\[ \text{SBI}_r(q) \;=\; \max \; \frac{1}{q}\left(\sum_{i:\delta^x_i=1}\frac{s^x_{ir}}{\bar x_i}\;+\;\sum_{k:\delta^y_k=1}\frac{s^y_{kr}}{\bar y_k}\right) \]
再换成常用的效率分,越接近 1 越有效:
\[ \text{Eff}_r(q) \;=\; \frac{1}{1+\text{SBI}_r(q)} \]
这里有个关键:指标加得越多,判别力其实越差——平均效率上升、有效单元变多,大家又挤到一起了。所以方法会在判别力下降到某个程度时停下来,只取前面几轮(判别力还不错的那段区间),对效率分做个加权平均,得到最终的综合得分:
\[ \text{CI}_r \;=\; \frac{2}{(q_{\max}-q_{\min}+1)(q_{\min}+q_{\max})}\sum_{q=q_{\min}}^{q_{\max}} q\cdot\text{Eff}_r(q) \]
这样处理有个好处:一个对象如果从早期就稳定排在前头,它多半是真正出色的,而不是靠最后几轮堆出来的。
另外,哪个指标被选中的次数多,就说明它在区分好坏这件事上更重要:
\[ \bar\delta_i \;=\; \frac{1}{q_{\max}-q_{\min}+1}\sum_{q=q_{\min}}^{q_{\max}}\delta_i(q) \]
这个信息,对找“关键驱动因素”很有用。
四、实际跑出来是什么样
我拿论文的例子走了一遍——用 SDR 2025 的可持续发展指标,给 38 个 OECD 国家打分,共 125 个指标、17 个类别。评价对象只有 38 个,指标却有 125 个,正是 DEA 最头疼的“指标多、样本少”。
下面这张表是不同指标数量下的判别力变化。注意看平均效率和有效国家数怎么随指标数一起涨——涨得越多,说明判别力掉得越快。
| 指标数 q | 平均效率 | 有效国家数 | 有效占比 |
|---|---|---|---|
| 1 | 0.235 | 1 | 2.6% |
| 5 | 0.478 | 6 | 15.8% |
| 10 | 0.670 | 13 | 34.2% |
| 12 | 0.778 | 20 | 52.6% |
| 17 | 0.944 | 32 | 84.2% |
读懂这张表的关键,是那个拐点:q 从 10 往上,有效国家占比一下子跳上去,判别力明显泄了。所以论文把用来算综合分(CI)的区间,定在 q=1 到 10,既保住判别力,又不至于漏掉太多维度。
最终的排名也很有意思。用 q=1…10 算出来的综合分,前两名——土耳其、哥伦比亚——和论文完全一致,新西兰、卢森堡、挪威也都排在前列:
| 国家 | 论文 CI | 复现 CI |
|---|---|---|
| 土耳其 | 1.000 | 1.000 |
| 哥伦比亚 | 0.990 | 0.990 |
| 新西兰 | 0.963 | 0.931 |
| 卢森堡 | 0.922 | 0.873 |
| 挪威 | 0.917 | 0.866 |
而那堆指标里,谁的“存在感”最强也很清楚。下表是每个指标在 q=1…10 里被选中的次数,次数越多,越说明它最能区分国家之间的差异:
| 指标 | 被选次数 |
|---|---|
| sdg2_trophic | 10 |
| sdg12_explastic | 9 |
| sdg9_womensci | 8 |
| sdg3_incomeg | 7 |
| sdg17_oda_govrev | 6 |
像 sdg2_trophic(人类营养级)几乎每轮都在,sdg13_ghginput(进口隐含温室气体)则从第 7、8 轮开始才进来。这说明前者是“长期稳定”的区分器,后者是“到一定维度才开始起作用”的区分器——这种信息,直接拿去写论文结论、找发力点,都很顺。
五、它适合什么场景
说到最合适的,就是指标多、样本少的那种。现实中很容易对上号:
- 给几十个城市、省份评一个发展或治理的综合指数;
- 给一批企业、医院、银行做绩效打分;
- 指标体系里指标远超评价对象,又不想靠专家主观删指标;
- 想要一个既能打分、又能说明“到底哪些指标在起作用”的结果。
六、一点使用上的体会
方法本身是成熟的,但真要用,有几个地方得留意。
一是数据。这类方法对数据年份很敏感,千万别把 2026 年的数据库当成 2025 年来用。再一个,有些指标官方只给了原始值、没给归一化分数,需要自己处理成统一口径,正反向也要分清楚——“越小越好”的指标可别当成“越大越好”。
二是上层是随机搜索的启发式,不像线性规划那样有唯一解。扰动次数、停止条件调一调,结果会有差别。我自己跑的时候,会把扰动调小一点,让变量选择更稳定。
这些都算实操细节,不难,但第一次用确实容易踩坑。
七、写在最后
我一直觉得,一个方法真要有用,不只是公式漂亮,而是让“多指标、小样本”这种棘手情况,有了一个能落地的路子。
ACDEA 给我的印象,不是它创造了什么新指标,而是它把变量选择这件事,从“靠经验拍脑袋”变成了一件可以自动、稳定、可解释的事。这对指标一堆、又都想兼顾的人,省心不少。
如果你也在做效率评价,或者正被“指标太多、分不出高下”困扰,欢迎来聊聊,说不定能互相帮上忙。需要进一步交流的,可以联系微信 canglang12002(任公子)。


