数据包络分析-两阶段网络DEA(two stage network)

二阶段网络DEA(two-stage network)

  • 二阶段网络DEA简单介绍
    • centralized model
      • 第一步
      • 第二步
    • non-cooperation model
    • example--centralized model

这篇文章是阅读文献做的总结并且代码复现。欢迎大家一起交流。
数据包络分析-两阶段网络DEA(two stage network)_第1张图片

二阶段网络DEA简单介绍

二阶段网络DEA主要有两种类型。第一种就是stage-1只有中间变量输出,而stage-2只有中间变量输入。而第二种更为常见,就是stage-1只有中间变量输出,而stage-2既有中间变量输入又有额外的投入。这篇文章是基于第二种类型进行展开。
数据包络分析-两阶段网络DEA(two stage network)_第2张图片

这篇文章内容不多,讲述了两种方法,分别是centralized model 以及 non-cooperation model.

centralized model

根据上述图示,我们可以写出模型。
数据包络分析-两阶段网络DEA(two stage network)_第3张图片

多看文献的人都知道,这个模型很常见,并且也应该知道这个模型不能转变成线性模型,那么就很难从软件中求得全局最优值。这里我们就通过一种启发式方法。个人认为,这个方法极好!很有意思! 好聪明!

具体操作如下:
总的来说,通过两个步骤。

第一步

我们先求得stage-1的效率最大值,在原来模型的限制条件下:
数据包络分析-两阶段网络DEA(two stage network)_第4张图片
要知道,原模型的目标函数是两个小于等于1的乘数相乘,并且两个成分要使得乘积达到最大,那么现在只需要第一部分达到最大,必定会必原来的值更大,也就是:
在这里插入图片描述

第二步

上一步是求出了stage-1效率的一个范围。接下来,为了求centralized model的效率,我们就假设stage-1的效率是一个常数,为已知值。即:
数据包络分析-两阶段网络DEA(two stage network)_第5张图片
并且为了在python中实现,对其进行线性转化:

数据包络分析-两阶段网络DEA(two stage network)_第6张图片
然后,就是考验编程能力了,迭代计算。我们注意stage-1效率:
在这里插入图片描述
这里的k是迭代次数,在这里插入图片描述是步长,是自己设定的,这篇文章开始设定的是0.01。
又因为k是迭代次数,一定是整数,且效率一定大于等于0,那么k的大小就有限制。
在这里插入图片描述

k从0开始进行迭代至k的最大值。对于每个DMUs,每个k都会得到一个系统效率值theta_centralized,我们取最大值,以及所对应的k。确定了k,我们就可以得到一个确切的stage-1效率值theta_0_1。那么可以根据除法,得到stage-2的效率值。

non-cooperation model

这个部分比较简单,就简单过一下。
非合作模型,就是两种。第一种,就是先求得stage-1的效率值(leading),然后在固定stage-1的效率下,再去求stage-2的效率值。或者说,先求得stage-2的效率值(leading),然后在固定stage-2的效率下,再去求stage-1的效率值。

给出第一种展示:
数据包络分析-两阶段网络DEA(two stage network)_第7张图片
数据包络分析-两阶段网络DEA(two stage network)_第8张图片

example–centralized model

网络展示:
数据包络分析-两阶段网络DEA(two stage network)_第9张图片
数据展示(小部分,主要看变量名称),数据我看看能不能上传,大家可以去资源地方找找:
数据包络分析-两阶段网络DEA(two stage network)_第10张图片

然后,结果展示(只展示了stage-1先算的系统效率,旁边贴的表是我复现的结果):

数据包络分析-两阶段网络DEA(two stage network)_第11张图片

这是以stage-2先算的结果,旁边贴的表是我个人的复现结果:
数据包络分析-两阶段网络DEA(two stage network)_第12张图片

上述结果都是建立在步长为0.01的结果。但是步长越小结果越好,文航后面实现了步长为0.0001和0.00001的结果。但是由于本人没有gpu,跑的太慢了,就只实现了一个。

步长为0.0001情况下的stage-1先算时候的系统效率,结果如下(就这么一个系统效率,跑了一个小时。。。):
数据包络分析-两阶段网络DEA(two stage network)_第13张图片

欢迎大家一起来复现。数据集我试试上传到资源地方!

本人用的是python的gurobi软件来解决的问题,用最基础的dea代码嵌套两次循环。

你可能感兴趣的:(python,数据分析,网络)