基于投入导向的超效率CCR-DEA模型(MATLAB)

采用 CCR模型与超效率 DEA模型,在测算结果上完全相同;但对于效率项而言,每一个效率项都获得了一个全新且数值大于 1 的解。

基于投入导向的超效率CCR模型为:

 借鉴参考文献[1],给出如下径向超效率代码。

clear
load('X');%投入指标数据,每一列代表每个决策单元的投入数据
load('Y');%产出指标数据。同上
x=X';y=Y';
n=size(x, 1);  %决策单元数
m=size(x',1);  %投入指标数
s=size(y',1);  %产出指标数
epsilon=10^-10;%一个非常小的正数,在目标函数中用以识别松弛变量,并判断有效和弱有效
f=[zeros(1,n) -epsilon*ones(1,m+s) 1];%目标函数前n个决策变量的价值系数为0,第n+1到第n+m+s个决策变量的价值系数都为那个充分小的正数,第n+m+s+1个决策系数的价值系数为1
A=zeros(1,n+m+s+1);%不等式约束的系数矩阵,仅有1行,n+m+s+1列,元素全为0
b=0;%不等式约束左端的值,全部为0
LB=zeros(n+m+s+1,1);%决策变量的下限,共n+m+s+1行,1列。每个元素都为0,
UB=[];%决策变量的上限,无要求。
LB(n+m+s+1)=-inf;
for i=1:n
    Aeq=[[x(:,1:i-1),zeros(m,1),x(:,i+1:n)] eye(m) zeros(m,s) -x(:,i)
        [y(:,1:i-1),zeros(s,1),y(:,i+1:n)] zeros(s,m) -eye(s) zeros(s,1)];
   beq=[zeros(m,1)
       y(:,i)]; 
   v(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);
end
theta_se=v(n+m+s+1,:)';

结果

0.0523743040732201
0.460194278564892
0.280835016622215
0.236269678021675
0.137840670422364
0.689863036524380
0.623629111454303
0.171727320159312
1.92741811023484
0.855787172666927
0.351011949617917
0.377780736929536
1.04518535254579
1.36798979340467
0.515844523360096
0.885503385809792
0.972765683802164
0.507884347300140
0.720737829252715
0.868254837493949
0.678868902578528
1.24654749293846
0.651339743186006
0.566628186204255
0.909258990279544
1.17729908354233
1.03973367345551
1.07081404510341
0.437828731291854
0.637403183592677
1.07791085587961
0.834316741706237
1.34902353413582
1.33482443066868
0.482137577192168
0.139365597368248
0.158433430063874
0.0478733732092864

注:将投入指标数据保存在同个路径下,保存为X.mat文件,产出指标数据同样设置。

 

参考文献:[1]刘展,屈聪.MATLAB在超效率DEA模型中的应用[J].经济研究导刊,2014(03):86-87+93. 

参考来源超效率DEA

### 回答1: DEA(Data Envelopment Analysis)是用来评估多输入多输出的效率的一种方法。而效率模型DEA方法的一种扩展形式,用于评估相对效率与最优效率之间的差异。 DEA效率模型Matlab代码可以采用以下步骤实现: 1. 导入数据:将包含多个评估单元的输入和输出数据导入到Matlab中。 2. 标准化数据:对输入和输出数据进行标准化,确保它们在同一尺度上。 3. 建立DEA模型:使用DEA模型计算每个评估单元的相对效率。可以选择使用CCR模型(Charnes-Cooper-Rhodes模型)或BCC模型(Banker-Charnes-Cooper模型)。 4. 计算潜在权重:使用得到的最优效率计算潜在权重向量。 5. 计算效率:利用得到的潜在权重向量计算每个评估单元的效率。 6. 输出结果:将每个评估单元的效率指标输出为结果。 以上是实现DEA效率模型的基本步骤,而实际的Matlab代码会更加详细和复杂,涉及到数据处理、线性规划等方面的内容。具体的代码实现可以参考相关的DEA方法文献或DEA相关软件包的官方文档。 值得注意的是,根据具体的研究目的和数据情况,可能还需要进行一些额外的步骤和处理,例如引入约束条件、考虑投入和产出的权重等。因此,以上提供的步骤仅是一个基本的框架,具体的实现还需要根据具体情况进行调整和完善。 ### 回答2: DEA(Data Envelopment Analysis)效率模型是一种常用的评估技术效率的方法。在Matlab中,可以使用以下代码实现DEA效率模型。 首先,需要加载输入和输出数据。假设输入数据为X,输出数据为Y。假设共有n个单位需要被评估,每个单位有m个输入和s个输出。 ```matlab X = [x1, x2, ..., xm]; % 输入数据矩阵,大小为n x m Y = [y1, y2, ..., ys]; % 输出数据矩阵,大小为n x s ``` 接下来,我们可以使用DEA效率模型评估单位的效率。 ```matlab % 定义线性规划模型 model = createModel(n, m, s); model = addOutputVariables(model, Y); model = addInputVariables(model, X); % 添加约束条件(输入数据非负) for i = 1:m model.constraints = [model.constraints; {X(:, i) >= 0}]; end % 添加约束条件(输出数据非负) for i = 1:s model.constraints = [model.constraints; {Y(:, i) >= 0}]; end % 添加约束条件(效率约束) model.constraints = [model.constraints; {model.variables(end - s + 1 : end) == 1}]; % 设置目标函数 model = setObjective(model, ones(1, m + s), 'max'); % 求解线性规划模型 result = solve(model); % 输出效率单位 efficiency = result.objective; ``` 以上代码中,createModel函数用于创建线性规划模型,addOutputVariables和addInputVariables函数用于添加输出和输入变量,setObjective函数用于设置目标函数,而solve函数用于求解线性规划模型。最终,结果efficiency即为DEA效率模型评估出的单位效率。 需要注意的是,以上代码仅为DEA效率模型的基本实现,实际应用中可能需要根据具体问题进行修改和扩展。 ### 回答3: DEA(Data Envelopment Analysis)效率模型是一种常用的评价相对效率的方法,适用于多个输入和输出指标的情况。以下是一个用MATLAB编写的DEA效率模型的示例代码: ```matlab % 假设有n个单位,m个输入指标和s个输出指标 n = 10; % 单位数量 m = 3; % 输入指标数量 s = 2; % 输出指标数量 % 输入指标矩阵,维度为n x m X = rand(n, m); % 输出指标矩阵,维度为n x s Y = rand(n, s); % 构建约束矩阵A和B A = kron(eye(n), Y); % 维度为n*s x n*s B = kron(-X', eye(n)); % 维度为m*n x n*s % 构建目标向量C C = zeros(n*s, 1); C(1:s) = 1; % 希望最大化输出指标 % 使用线性规划求解效率模型 cvx_begin variable lambda(n*s, 1) % 拉格朗日乘子 maximize(C' * lambda) % 最大化目标函数 subject to A * lambda <= B * lambda % 约束条件 lambda >= 0 % 拉格朗日乘子非负 cvx_end % 输出达到最高效率的单位的索引 efficient_units = find(lambda(s+1:end) == 0); disp('达到最高效率的单位索引为:'); disp(efficient_units); ``` 该代码实现了DEA效率模型的计算过程。首先,假设存在n个单位,每个单位有m个输入指标和s个输出指标。然后,通过生成随机的输入和输出指标矩阵X和Y。接下来,根据输入和输出指标矩阵构建约束矩阵A和B,并构建目标向量C。最后,使用线性规划库对效率模型进行求解,得到达到最高效率的单位的索引。 以上是一个简单的DEA效率模型MATLAB代码实例。具体的应用场景和数据输入方式可能需要根据具体需求进行调整。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值