指标太多,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(任公子)。