0


数据包络分析(超效率-SBM模型)附python代码

超效率-SBM模型

这段时间差不多忙完了,终于有时间可以来经营我的博客了。

上阵子挺多人私信我,原谅我记性不好,可能没有回复全。

这篇文章是超效率的扩展。

超效率SBM

SBM本身就是非径向模型(non-radial model),想要了解径向超效率的请自行去前面翻阅。

上篇文章说到super-SBM的一个模型,公式为:
在这里插入图片描述

这个模型是分式模型,我们可以通过charnes cooper变换,将其转变成为:
在这里插入图片描述

在这里插入图片描述

python代码(部分)

在编程过程中,本来我以为第一个模型是无法出结果的,但是很无语的是,是我有bug了。这里就附上第一个模型的超效率核心部分代码(第二个也是差不多,万变不离其宗)。

首先,数据为:
在这里插入图片描述

def__SBM_super_C(self):for k in self.DMUs:

            MODEL = gurobipy.Model()

            fi = MODEL.addVars(self.m1)
            lambdas = MODEL.addVars(self.DMUs)
            fo = MODEL.addVars(self.m2)
            t = MODEL.addVar()

            MODEL.update()

            MODEL.setObjective(t + t/self.m1 * quicksum(fi[j]for j inrange(self.m1)), sense=gurobipy.GRB.MINIMIZE)

            MODEL.addConstrs(quicksum(lambdas[i]* self.X[i][j]for i in self.DMUs if i != k)<=(1+fi[j])* self.X[k][j]for j inrange(self.m1))
            MODEL.addConstrs(quicksum(lambdas[i]* self.Y[i][j]for i in self.DMUs if i != k)>=(1-fo[j])* self.Y[k][j]for j inrange(self.m2))
            MODEL.addConstr(t-t/self.m2 * quicksum(fo[j]for j inrange(self.m2))==1)

            MODEL.setParam('OutputFlag',0)
            MODEL.setParam("NonConvex",2)
            MODEL.optimize()

            self.Result.at[k,('效益分析','效率')]= MODEL.objVal
        return self.Result

首先是用最基本的SBM模型对所有DMUs进行分析,结果如下,前四个DMUs是SBM有效的:

    效率(SBM)       有效性      类型
A         1    SBM 有效  规模报酬固定
B         1    SBM 有效  规模报酬固定
C         1    SBM 有效  规模报酬固定
D         1    SBM 有效  规模报酬固定
E      0.42  非 SBM 有效  规模报酬固定
F  0.571429  非 SBM 有效  规模报酬固定

然后为深入了解前四个DMUs中哪个更好,针对这四个,做超效率-SBM模型分析。(注意此时得到的E、F值不用,用基础SBM中得到的效率值。)

      效益分析
        效率
A  1.14286
B  1.16383
C  1.08824
D    1.125
E        1
F        1

最终,整合后得到的效率值应该是:

      效益分析
        效率
A  1.14286
B  1.16383
C  1.08824
D    1.125
E     0.42
F 0.571429

这个例子是来自于书本的(Data Envelopment Analysis 2th Edition),书中给出了结果,与复现结果是一致的。
在这里插入图片描述


本文转载自: https://blog.csdn.net/weixin_43217288/article/details/115830491
版权归原作者 sylvia-xy 所有, 如有侵权,请联系我们删除。

“数据包络分析(超效率-SBM模型)附python代码”的评论:

还没有评论