数据包络分析--保证域方法(assurance region method)附python代码以及案例

本文介绍了Data Envelopment Analysis(DEA)中的保证域方法(Assurance Region method),针对模型中系数失效问题,通过限制系数范围优化了CCR模型。提供了AR-有效模型的Python代码示例,展示了如何使用Gurobi求解并应用保证域策略。案例分析展示了优化后的结果对比和系数变化。
摘要由CSDN通过智能技术生成

Data envelopment analysis–Assurance region method


这个保证域方法比较简单,接下来简单概述一下:

对一个DEA模型求解,例如CCR的线性模型,我们既有可能得到的最优系数值为0,这就意味着我们并没有充分利用原数据信息,所以其实这个DMU哪怕其theta值为1,也是无效的。

针对这个情况,我们进行改进。给每个DMU的系数限定范围。这里把每个系数都与第一项作比较:
在这里插入图片描述

model

那么接下来,就给出CCR形式下的保证域方法:
在这里插入图片描述
其中:
在这里插入图片描述

其对偶形式为:
在这里插入图片描述

AR-有效

与CCR形式类似,这个保证域方法有效的前提是theta=1且松弛变量全为0

python代码

数据:
在这里插入图片描述
若直接用这组数据进行CCR模型求解得到的结果是:
在这里插入图片描述

可以从上图结果中发现,众多系数为0。意味着许多原始数据并没有得到充分利用。继而用保证域方法进行改良。

此时,保证域方法使得系数有限制:
在这里插入图片描述

附上主体部分,剩余的可看前面,都差不多的:

    def __CCR_dual(self):
        for k in self.DMUs:
            MODEL = gurobipy.Model()
            u, v = MODEL.addVars(self.m2), MODEL.addVars(self.m1)
            MODEL.update()
            MODEL.setObjective(gurobipy.quicksum(u[j]*self.Y[k][j] for j in range(self.m2)), sense=gurobipy.GRB.MAXIMIZE)
            MODEL.addConstr(gurobipy.quicksum(v[j]*self.X[k][j] for j in range(self.m1)) == 1)
            MODEL.addConstrs(gurobipy.quicksum(v[j]*self.X[i][j] for j in range(self.m1))
                             >= gurobipy.quicksum(u[j]*self.Y[i][j] for j in range(self.m2)) for i in self.DMUs)
            MODEL.addConstr(v[1] <= 5 * v[0])
            MODEL.addConstr(v[1] >= 0.2 * v[0])
            MODEL.addConstr(u[1] <= 5 * u[0])
            MODEL.addConstr(u[1] >= 0.2 * u[0])
            MODEL.setParam('OutputFlag', 0)
            MODEL.setParam("NonConvex", 2)
            MODEL.optimize()
            self.Result.at[k, ('效益分析', '综合技术效益(CCR)')] = MODEL.objVal
            for m in range(self.m1):
                self.Result.at[k, ('系数v', f'{self.m1_name[m]}')] = v[m].X
            for m in range(self.m2):
                self.Result.at[k, ('系数u', f'{self.m2_name[m]}')] = u[m].X

结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值