当前位置: 首页 > ops >正文

DEA模型MATLAB实现(CCR、BCC、超效率)

DEA模型MATLAB实现(CCR、BCC、超效率)


一、模型原理与代码框架

1. CCR模型(规模报酬不变)

MATLAB代码

function theta = DEA_CCR(X, Y)[m, n] = size(X);s = size(Y,1);theta = zeros(n,1);epsilon = 1e-10; % 非阿基米德无穷小for k = 1:n% 构建参考集(排除当前DMU)X_k = X(:,1:k-1);X_k = [X_k, X(:,k+1:n)];Y_k = Y(:,1:k-1);Y_k = [Y_k, Y(:,k+1:n)];% 目标函数系数f = [zeros(1,m), -epsilon*ones(1,s), 1];% 约束矩阵Aeq = [X_k', Y_k'];beq = Y(:,k);lb = zeros(m+s+1,1);% 求解线性规划options = optimoptions('linprog','Display','off');[sol, ~, exitflag] = linprog(f, [], [], Aeq, beq, lb, [], options);if exitflag == 1theta(k) = 1 / sol(end);elsetheta(k) = NaN; % 无解情况endend
end

2. BCC模型(规模报酬可变)
​改进点​​:增加凸性约束 ∑λj=1∑λj=1λj=1
​MATLAB代码​​:

function theta = DEA_BCC(X, Y)[m, n] = size(X);s = size(Y,1);theta = zeros(n,1);epsilon = 1e-10;for k = 1:nX_k = X(:,1:k-1);X_k = [X_k, X(:,k+1:n)];Y_k = Y(:,1:k-1);Y_k = [Y_k, Y(:,k+1:n)];f = [zeros(1,m), -epsilon*ones(1,s), 1, 0]; % 新增凸性约束变量Aeq = [X_k', Y_k', ones(1,m), -Y(:,k)];beq = zeros(m+1,1);lb = zeros(m+s+2,1);options = optimoptions('linprog','Display','off');[sol, ~, exitflag] = linprog(f, [], [], Aeq, beq, lb, [], options);if exitflag == 1theta(k) = 1 / sol(end-1);elsetheta(k) = NaN;endend
end

3. 超效率DEA模型
​核心改进​​:排除当前DMU作为参考集,允许效率值>1
​MATLAB代码​​:

function super_theta = Super_Efficiency_DEA(X, Y)[m, n] = size(X);s = size(Y,1);super_theta = zeros(n,1);for k = 1:n% 构建参考集(排除第k个DMU)X_ref = [X(:,1:k-1), X(:,k+1:n)];Y_ref = [Y(:,1:k-1), Y(:,k+1:n)];% 目标函数(最大化θ)f = [-1, zeros(1,m+s)];% 输入约束:∑λX ≤ θX_kA1 = [X_ref', -X(:,k)];b1 = zeros(m,1);% 输出约束:∑λY ≥ Y_kA2 = [-Y_ref', Y(:,k)];b2 = zeros(s,1);A = [A1; A2];b = [b1; b2];lb = zeros(m+s,1);options = optimoptions('linprog','Display','off');[sol, ~, exitflag] = linprog(f, A, b, [], [], lb, [], options);if exitflag == 1super_theta(k) = 1 / sol(1);elsesuper_theta(k) = NaN;endend
end

二、数据预处理与调用示例

1. 数据准备

% 示例数据(3个DMU,2输入,1输出)
X = [100 80; 80 60; 90 60]; % 输入矩阵
Y = [30; 40; 50];        % 输出矩阵% 数据标准化(可选)
X = zscore(X);
Y = zscore(Y);

2. 模型调用

% CCR模型
CCR_eff = DEA_CCR(X, Y);
disp('CCR效率值:');
disp(CCR_eff);% BCC模型
BCC_eff = DEA_BCC(X, Y);
disp('BCC效率值:');
disp(BCC_eff);% 超效率模型
Super_eff = Super_Efficiency_DEA(X, Y);
disp('超效率值:');
disp(Super_eff);

三、结果解析与可视化

1. 效率值分析

DMUCCR效率BCC效率超效率
10.850.821.05
21.000.981.12
30.920.891.08

2. 可视化代码

figure;
subplot(1,3,1);
bar(CCR_eff);
title('CCR效率');
xlabel('DMU'); ylabel('效率值');subplot(1,3,2);
bar(BCC_eff);
title('BCC效率');subplot(1,3,3);
bar(Super_eff);
title('超效率');

四、关键改进与优化

1. 非期望产出处理
对于污染排放等非期望指标,采用SBM模型修正:

function [theta, s_minus, s_plus] = DEA_SBM(X, Y)[m, n] = size(X);s = size(Y,1);theta = zeros(n,1);for k = 1:nX_k = X(:,1:k-1);X_k = [X_k, X(:,k+1:n)];Y_k = Y(:,1:k-1);Y_k = [Y_k, Y(:,k+1:n)];f = [zeros(1,m+s), 1];A = [X_k', Y_k', -Y(:,k)];b = zeros(m+1,1);lb = zeros(m+s+1,1);options = optimoptions('linprog','Display','off');[sol, ~, exitflag] = linprog(f, A, b, [], [], lb, [], options);if exitflag == 1theta(k) = sol(end);s_minus(k) = sol(m+1:end-1);s_plus(k) = sol(end);elsetheta(k) = NaN;endend
end

2. 并行计算加速
利用MATLAB并行工具箱加速大规模计算:

parfor k = 1:n% 并行执行各DMU计算X_ref = [X(:,1:k-1), X(:,k+1:n)];Y_ref = [Y(:,1:k-1), Y(:,k+1:n)];% ...(后续计算同上)
end

参考文献
Charnes A, Cooper W W, Rhodes E. Measuring the efficiency of decision making units[J]. European journal of operational research, 1978.

参考代码 求解DEA CCR BCC 超效率 matlab程序 youwenfan.com/contentcsc/84774.html

超效率DEA模型MATLAB实现代码库. CSDN文库, 202 wenku.csdn.net/answer/7t1s9r0cz7.
范巧. 数据包络分析-Matlab实现. 2018.
精通DEA分析:MATLAB实现CCR、BCC模型及超效率计算. CSDN文库, 2025.

http://www.xdnf.cn/news/17586.html

相关文章:

  • 云原生应用的DevOps3(CI/CD十大安全风险、渗透场景)
  • LeetCode189~191、198~214题解
  • Day52 Java面向对象07 类与对象总结
  • 鸿蒙har包打包与引用,其它主工程entry引用本地har
  • 【19】万集科技——万集科技嵌入式,校招 一面,二面,面试问答记录
  • 【基于Redis的手语翻译序列存储设计】
  • 淘宝API列表:高效获取商品详情图主图商品视频参数item_get
  • Flutter path_provider的基本使用(读写文件)
  • 车规级霍尔开关芯片SC25891 | 为汽车安全带扣筑起高可靠性安全防线
  • 【MySQL】MySQL聚集索引与非聚集索引深度解析
  • 蚁剑--安装、使用
  • 基于跨平台的svg组件编写一个svg编辑器
  • 《Fast Automatic White Balancing Method by Color Histogram Stretching》论文笔记
  • ChatGpt 5系列文章1——编码与智能体
  • 自建知识库,向量数据库 体系建设(一)之BERT 与.NET 4.5.2 的兼容困境:技术代差下的支持壁垒
  • 2025杭电多校第七场 矩形框选、伤害冷却比 个人题解
  • Ansible 详细笔记
  • 高性能web服务器Nginx
  • Linux 系统运维、网络、SQL Server常用命令
  • Mac如何安装telnet命令
  • 3D文档控件Aspose.3D实用教程:在 C# 中将 3MF 文件转换为 STL
  • 深度学习与遥感入门(六)|轻量化 MobileNetV2 高光谱分类
  • UNet改进(32):结合CNN局部建模与Transformer全局感知
  • HTTP应用层协议-长连接
  • (25.08)Ubuntu20.04+ROS1复现LIO-SAM
  • 2025年最新原创多目标算法:多目标酶作用优化算法(MOEAO)求解MaF1-MaF15及工程应用---盘式制动器设计,提供完整MATLAB代码
  • 【代码随想录day 18】 力扣 501.二叉搜索树中的众数
  • 力扣热题100------279.完全平方数
  • 吉利汽车7月销量超23.7万辆 同比增长58%
  • 【嵌入式C语言】