
MATLAB超效率SBM-DEA模型代码:安装教程与内容讲解,期望产出与非期望产出的超
效率与非超效率SBM模型及Malmquist指数分解操作简述
安装MATLAB的SBM-DEA工具箱比想象中简单。直接官网下载压缩包,解压后把整个文件夹扔到MATLA
B的toolbox目录里。在设置路径里点"添加并包含子文件夹",搞定。注意必须安装Optimization Toolbox
——这玩意儿是核心依赖,没装的话跑模型会报些看不懂的错。
来看段基础代码:
```matlab
function [eff,slack] = sbm_dea(X,Y,B,orient,isSuper)
[m,n] = size(X);
cvx_begin quiet
variable lambda(n)
variable s_x(m)
variable s_y(size(Y,1))
variable s_b(size(B,1))
minimize(1 - (1/m)*sum(s_x./X(:,1)))
subject to
lambda >= 0;
sum(lambda) == 1;
X*lambda + s_x == X(:,1);
Y*lambda - s_y == Y(:,1);
B*lambda + s_b == B(:,1);
cvx_end
eff = cvx_optval;
```
这段是处理非期望产出的超效率模型内核。X是投入,Y是期望产出,B是非期望产出。orient参数控
制导向,0是投入导向,1是产出导向。isSuper开关控制是否启用超效率模式。注意数据必须归一化处理,原
始数据量纲差异大会导致模型抽风。
实际操作用户只需要准备三个矩阵:
```matlab
load('hospital_data.mat'); % 示例数据