数据包络分析(DEA)
2026/8/4 5:53:36 网站建设 项目流程

代码先看

import numpy as np from scipy.optimize import linprog def dea_ccr(X, Y, eps=1e-6): X, Y = np.array(X, float), np.array(Y, float) n, m, s = X.shape[0], X.shape[1], Y.shape[1] eff, lam = np.zeros(n), np.zeros((n, n)) for k in range(n): c = np.r_[1, np.zeros(n)] A, b = [], [] for r in range(s): A.append(np.r_[0, -Y[:, r]]) b.append(-Y[k, r]) for i in range(m): A.append(np.r_[-X[k, i], X[:, i]]) b.append(0) res = linprog(c, A_ub=A, b_ub=b, bounds=[(None, None)] + [(0, None)] * n, method='highs') if res.success: eff[k], lam[k] = res.x[0], res.x[1:] lam[np.abs(lam) < eps] = 0 return eff, lam if __name__ == "__main__": names = ["医院A","医院B","医院C","医院D","医院E","医院F","医院G","医院H","医院I","医院J"] X = np.array([[20,300],[30,200],[40,100],[20,200],[10,400],[50,50],[35,150],[25,250],[45,80],[60,180]]) Y = np.array([[100,50],[150,80],[200,100],[80,120],[100,60],[200,150],[120,90],[110,70],[180,110],[160,130]]) eff, lam = dea_ccr(X, Y) rank = np.argsort(np.argsort(-eff)) + 1 # 核心输出:效率排名表 print("\nDEA效率评价(CCR投入导向)") print("DMU 效率θ 排名 解读") for i, name in enumerate(names): info = "最优" if abs(eff[i]-1)<1e-6 else f"浪费{100-eff[i]*100:.1f}%" print(f"{name:6} {eff[i]:7.4f} {rank[i]:3} {info}") # 改进建议(只输出非有效DMU) print("\n改进建议(目标投入 = θ × 当前投入)") print("DMU 当前(医生,床位) 目标(医生,床位) 可削减") for i, name in enumerate(names): if eff[i] < 1: cur = X[i] target = eff[i] * cur red = cur - target print(f"{name:6} ({cur[0]:3.0f},{cur[1]:3.0f}) ({target[0]:5.1f},{target[1]:5.1f}) (-{red[0]:.0f}人,-{red[1]:.0f}床)") print()

DEA 结果详解

下面结合刚才运行的10家医院的结果,把每一部分掰开揉碎讲清楚。

第一部分:效率排名表

DMU | 效率θ | 排名 | 解读 ------------------------------------------------------------ 医院A | 0.7500 | 8 | 投入只需 75.0%,浪费 25.0% 医院B | 0.9062 | 5 | 投入只需 90.6%,浪费 9.4% 医院C | 1.0000 | 1 | 满分,效率最优 ✅ 医院D | 1.0000 | 2 | 满分,效率最优 ✅ 医院E | 1.0000 | 3 | 满分,效率最优 ✅ 医院F | 1.0000 | 4 | 满分,效率最优 ✅ 医院G | 0.7412 | 9 | 投入只需 74.1%,浪费 25.9% 医院H | 0.7724 | 7 | 投入只需 77.2%,浪费 22.8% 医院I | 0.8878 | 6 | 投入只需 88.8%,浪费 11.2% 医院J | 0.6304 | 10 | 投入只需 63.0%,浪费 37.0%
1) θ(效率值)到底怎么来的?

DEA 的核心理念是"拿你家的投入跟别人家拼一个虚拟的同龄人比"

对于每个医院,问一个问题:

"把其他医院当积木,拼一个虚拟医院,产出不低于你,但投入最少能压到你的多少倍?"

这个倍数就是 θ。

以医院J(θ=0.6304)为例:

投入产出
医院J 自己60人 + 180床160门诊 + 130住院
虚拟目标(θ×当前)37.8人 + 113.5床≥160门诊 + ≥130住院

含义:别的医院可以用D、C、F 三家拼出一个组合,这个组合只用 37.8 人 + 113.5 床,产出就不低于医院J。换句话说:医院J浪费了37%的资源(投入的 100% 中只用 63% 就够了)

2) 为什么有 4 家医院 θ=1.0?

θ=1.0 意味着:找不到任何组合能用更少的投入达到不低于它的产出

这 4 家(C、D、E、F)构成了生产前沿面(production frontier)。它们不一定"完美",只是在这个样本集合里,它们是各自方向上的"最优者":

  • C:床少但产出极高(100床 → 200门诊+100住院)
  • D:住院产出特别高(200床 → 120住院,结构独特)
  • E:床虽多但产出一比也算高效
  • F:极致精干(50人+50床 → 200门诊+150住院,产出最高!)

注意:虽然 C、D、E、F 都是 θ=1.0,但排名并列 #1,这是代码里用了argsort随机排的——实际上它们都是满分,并列第一。

第二部分:标杆参考(λ 向量)

医院J(θ=0.6304):参照 → 医院C(λ=0.2174) + 医院D(λ=0.3478) + 医院F(λ=0.4435)

λ 的含义:在构造"虚拟比较对象"时,每家标杆医院的占比权重

1) 怎么读这条信息?

意思是:给医院J 找的"虚拟比较对象",是这样拼出来的:

虚拟医院 = 0.2174 × 医院C + 0.3478 × 医院D + 0.4435 × 医院F

算一下这个虚拟医院的投入:

医生:0.2174×40 + 0.3478×20 + 0.4435×50 = 8.7 + 7.0 + 22.2 = 37.9人 床位:0.2174×100 + 0.3478×200 + 0.4435×50 = 21.7 + 69.6 + 22.2 = 113.5床

刚好就是上面"目标投入"的 37.8人 + 113.5床!

2) 怎么用这个信息?
  • λ 最大的 → 最重要的标杆:对医院J 来说,F(λ=0.4435)最值得学,投入精干但产出最高
  • λ=1.0 且指向自己→ 满分 DMU(C、D、E、F 各指向自己),说明别人拼不出来比它更优的组合

第三部分:改进建议(目标投入量)

医院J | ( 60, 180) | ( 37.8, 113.5) | (-22人, -67床)
怎么读?
当前投入目标投入可削减
60人 + 180床37.8人 + 113.5床砍掉 22 人 + 67 床

前提是:产出不变(160门诊+130住院)。这个"目标投入"不是拍脑袋想的,而是 DEA 的线性规划求解器算出来的"在效率前沿上你最少需要多少投入"

总结:一张表看懂三个模块

模块核心问题怎么读
效率排名谁高效谁低效?θ=1.0 满分,越小越浪费
标杆参考低效的该向谁学?λ 最大的就是你的"榜样",权重越大越重要
改进建议该怎么改?目标投入 = θ × 当前投入,中间差就是可削减量

三个必记原则

  1. DEA 是相对评价:你在样本集合里的排名,换一批 DMU 结果可能不同
  2. θ=1.0 ≠ 绝对完美:只是在这个集合里你是最优前沿,真实世界可能还有更强组合
  3. DMU 数量要够:一般要求n ≥ 3×(m+s),否则区分度差(太多满分),当前 10 家刚好在临界线上

核心重点

DEA(数据包络分析)的核心价值在于:在“多投入、多产出”的复杂系统中,不预先假设生产函数,客观地评价多个同质单元(DMU)的相对效率,并为低效单元提供精确的量化改进路径。

在数学建模竞赛(如国赛、美赛)中,DEA 几乎是“多指标综合评价类”问题的杀手锏。以下是它的适用场景、独特优势及竞赛中的典型套用逻辑:

DEA 解决了传统方法的哪些痛点?

  • 无需量纲统一:投入(如经费、人数)和产出(如论文数、利润)可以单位不同,直接计算,省去了归一化的主观性。

  • 权重由数学规划内生:不需要像 AHP(层次分析)那样由专家打分赋权,DEA 针对每个 DMU 寻找最有利的权重,客观性强。

  • 给出“投影”值:不仅告诉“你不行”,还精确告诉“你该如何减投入或增产出”来达到有效(这是 DEA 独有的杀手锏)。

常见应用领域与评价指标对照

以下表格梳理了数据包络分析(DEA)等效率评价方法在五大典型领域的投入-产出指标对照关系,供建模选题与指标体系设计时参考:

应用领域典型投入指标典型产出指标建模目的
宏观经济/区域发展土地、固定资产投资、劳动力、能源消耗GDP、财政收入、居民可支配收入评价"省份/城市"的经济发展质量或绿色全要素生产率
环境与碳排放(热门)资本、劳动力、能源消费量期望产出(GDP)、非期望产出(CO₂、SO₂)评价"低碳试点城市"或工业园区的生态效率(常用 SBM-DEA)
教育/医疗评估师资数量、教学经费、床位数、医生数升学率、就业率、就诊人数、治愈率评价"高校/医院"的办学或运营效率
金融/投资绩效员工人数、营业成本、风险资产净利润、不良贷款率(逆指标处理)、市场份额评价"银行分行/基金公司"的盈利能力与风控平衡
国防/科技创新R&D 经费、研发人员全时当量专利授权数、技术合同成交额、新产品销售收入评价"高新技术企业"或科研院所的创新转化效率

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询