SBM 模型分析全过程
数据包络分析DEA时,其研究投入产出效率情况,并且其假定投入和产出之间存在单调线性关系,其为一种线性规划技术来确定DMU相对效率的方法。但有时候会多出下‘非期望产出’,就是不希望有它产出,比如资金投入、教育投入换来了GDP上升和人口素质提升,但同时可能带来环境污染这个非期望产出项。在此种情况时,DEA模型则不满足单调线性关系要求。此时则需要使用非期望SBM模型,该模型由Tone(2001)提出。
非期望SBM模型(undesirable slacks-based measurement,Undesirable SBM)是DEA 衍生模型中的一种。相对传统 DEA 模型,非期望产出 SBM 模型不仅避免径向和角度度量引起的偏差,而且考虑生产过程中非期望产出因素的影响,更能反映效率评价的本质。
除此之外,效率值计算时会出现为1时无法对比,此时可使用超效率SBM模型进行分析,便于对决策单元DMU进行效率值对比排序等。
SBM模型案例
1 背景
当前有一项效率数据研究,DMU为中国31省市并且从2012~2021共计10年的数据,数据包括2个投入项,1个产出项和1个非期望产出项,如下:
GDP产出通常受到投资和消费的影响,因而将房地产投资金融与居民人均消费支出作为投入项,将人均GDP作为产出项,并且还有非期望产出项即二氧化硫排放量。研究数据从国家统计局官网下载并且整理得到,共计10年数据,因而在下述分析时可分别筛选出对应年份进行分析,本案例仅筛选出2021年数据进行分析。部分数据展示如下:
2 理论
SBM模型规划形式如下:
上式为BCC模型结构式,如果为CCR结构式,则没有这一限制条件。
上式中,代表决策单元的投入项,期望产出项和非期望产出项, 分别表示投入、期望产出和非期望产出的松弛向量,λ为权重向量,模型中下标“0”为被评价单元。目标函数值ρ为制造业能源生态效率,其关于严格单调递减,其取值范围在0-1之间。
当ρ=1,均为0时,决策单元是有效率的;当ρ<1时,表明决策单元存在效率损失,有必要在投入产出上做出相应改进。
SBM模型可以设定投入导向、产出导向和非导向三种,投入导向是指在保证产出一定时,寻找最少的投入;产出导向是指在投入量一定时,寻找最大的产出;非导向是指同时从投入和产出角度进行测算,因而也被称作投入产出双向,SPSSAU默认提供为非导向类型,即同时从投入和产出角度进行测算。
除此之外,考虑非期望产出的SBM模型可能会出现多个决策同时有效情况即效率值均为1,从而不便于对这些决策单元进行区分和排序。若测算结果出现多个决策单元同时有效时,则需要使用非期望产出的Super-SBM模型予以解决,即在SPSSAU操作界面中打勾选中‘超效率’复选框。关于超效率SBM模型(Super-SBM),其BCC规划形式如下:
上式为BCC模型结构式,如果为CCR结构式,则没有这一限制条件。
上述理论来源文献:李根, 刘家国, 李天琦. 考虑非期望产出的制造业能源生态效率地区差异研究——基于SBM和Tobit模型的两阶段分析[J]. 中国管理科学, 2019.
3 操作
本例子操作如下:
选择使用BCC模型,并且放入2个投入项、1个产出项,1个非期望产出项。与此同时,将省放入DMU框中。暂不进行‘超效率SBM’分析,如果需要,此时将‘超效率SBM’进行打勾即可。
与此同时,本案例数据为2012 ~ 2021共计10年数据,本案例仅针对2021年数据进行分析,因而先进行筛选后再分析,筛选如下图所示。
4 SPSSAU输出结果
SPSSAU共输出SBM模型效率值结果和效率值对比图形。如下说明:
5文字分析
从上表格可知:北京、内蒙古、上海、江苏和*共5省,它们的效率值均为1,意味着该5省的投入产出效率最优。与此同时,如果此时还想对比该5个省的效率值,则需要选择‘超效率SBM’复选框后重新分析。
上表格从第3列起,依次展示投入项、产出项、非期望产出项的变量Slack值。具体值的意义说明如下:如果投入项的松弛值>0表示投入需要减少量,如果产出项的松弛值>0表示产出需要增加量,如果非期望产出项的松弛值>0表示非期望产出需要减少量,具体以河北省为例:
河北省的效率值为0.2628意味着投入产出效率较低,‘房地产开发企业本年实际到位资金(亿元)’这一投入项的松弛值为5872.5200>0,意味着需要减少房地产投资金额58772.52亿元才能明显提升效率;‘全体居民人均消费支出(元)’这一投入项的松弛值为4611,意味着如果想让效率值最优,需要减少人均居民消费支出4611元。除此之外,人均GDP松弛值为0.2605万,意味着人均GDP提升0.2605万时可达效率最优。并且非期望产出项值为16.85>0,意味着也需要减少二氧化硫排放量16.85万吨才能让效率值最优。
特别提示:
在实际研究中可针对各DMU(本案例为31省)效率值进行分组,可分成几个组别进一步对比各DMU的投入产出效率情况。以及本案例数据为10年(但仅针对2021年数据进行分析),可多次筛选出不同年份数据进行分析,最后进行汇总和对比不同年份的效率值变化情况等。
上图直观展示各DMU的效率值数据,图中效率值与表格中效率值完全一致,仅为图示化展示。
6 剖析
涉及以下几个关键点,分别如下:
- SBM模型时希望输出投入冗余率、产出不足率等信息?
SPSSAU默认输出投入项、产出项和非期望产出项对应的松弛变量Slack值,如果希望计算投入冗余率或者产出不足率,此时可将Slack值除以对应原始数据值,即得到相对率数据,投入项的Slack值除以投入量即为投入冗余率,产出项的Slack值除以产出量即为产出不足率。 - 超效率SBM模型的使用?
SBM模型时如果出现各DMU项的效率值均为最优即均为1的情况,此时则无法对比DMU的投入产出效率(因为均为1),此时可选中‘超效率SBM’复选框,即使用超效率SBM模型进行分析使用,超效率SBM模型仅针对SBM模型中效率值=1的项进行,因而在SBM模型中效率值<1的项时,各项输出结果不变化。 - SBM模型时,BCC和CCR模型的选择?
相比CCR模型,BCC会多出lambda值=1的限制条件,通常情况下使用BCC模型,具体建议以文献为准。 - SPSSAU中SBM模型的非负平移功能?
在SBM模型或者超效率SBM模型时,SPSSAU提供非负平移功能,其意义为如果某列(某指标)数据出现小于等于0,则让该列数据同时加上一个‘平移值’【该值为某列数据最小值的绝对值+0.01】,以便让数据全部都大于0。 - SPSSAU进行SBM模型时出现null值?
规划求解计算时有可能出现无法计算的现象,此时建议更换模型,比如BCC模型与CCR模型的切换,也或者针对数据进行取对数后再次分析使用。
推荐阅读
-
一篇了解文件上传全过程的文章(1.8W 字的深入分析,进阶必读)
-
分析分层模型、XHR、跨域
-
正负偏差变量 即 d2+、d2- 分别表示决策值中超出和未达到目标值的部分。而 di+、di- 均大于 0 刚性约束和目标约束(柔性目标约束有偏差) 在多目标规划中,>=/<= 在刚性约束中保持不变。当需要将约束条件转换为柔性约束条件时,需要将 >=/<= 更改为 =(因为已经有 d2+、d2- 用来表示正负偏差),并附加上 (+dii-di+) 注意这里是 +di、-di+!之所以是 +di,-di+,是因为需要将目标还原为最接近的原始刚性约束条件 优先级因素和权重因素 对多个目标进行优先排序和优先排序 目标规划的目标函数 是所有偏差变量的加权和。值得注意的是,这个加权和都取最小值。而 di+ 和 dii- 并不一定要出现在每个不同的需求层次中。具体分析需要具体问题具体分析 下面是一个例子: 题目中说设备 B 既要求充分利用,又要求尽可能不加班,那么列出的时间计量表达式即为:min z = P3 (d3- + d3 +) 使用 + 而不是 -d3 + 的原因是:正负偏差不可能同时存在,必须有 di+di=0 (因为判定值不可能同时大于目标值和小于目标值),而前面是 min,所以只要取 + 并让 di+ 和 dii- 都为正值即可。因此,得出以下规则: 最后,给出示例和相应的解法: 问题:某企业生产 A 和 B 两种产品,需要使用 A、B、C 三种设备。下表显示了与工时和设备使用限制有关的产品利润率。问该企业应如何组织生产以实现下列目标? (1) 力争利润目标不低于 1 500 美元; (2) 考虑到市场需求,A、B 两种产品的生产比例应尽量保持在 1:2; (3)设备 A 是贵重设备,严禁超时使用; (4)设备 C 可以适当加班,但要控制;设备 B 要求充分利用,但尽量不加班。 从重要性来看,设备 B 的重要性是设备 C 的三倍。 建立相应的目标规划模型并求解。 解:设企业生产 A、B 两种产品的件数分别为 x1、x2,并建立相应的目标计划模型: 以下为顺序求解法,利用 LINGO 求解: 1 级目标: 模型。 设置。 variable/1..2/:x;! s_con_num/1...4/:g,dplus,dminus;!所需软约束数量(g=dplus=dminus 数量)及相关参数; s_con(s_con_num);! s_con(s_con_num,variable):c;!软约束系数; 结束集 数据。 g=1500 0 16 15. c=200 300 2 -1 4 0 0 5; 结束数据 min=dminus(1);!第一个目标函数;!对应于 min=z 的第一小部分;! 2*x(1)+2*x(2)<12;!硬约束 @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i)); !使用设置完成的数据构建软约束表达式; ! !软约束表达式 @for(variable:@gin(x)); !将变量约束为整数; ! 结束 此时,第一级目标的最优值为 0,第一级偏差为 0: 第二级目标: !求 dminus(1)=0,然后求解第二级目标。 模型。 设置。 变量/1..2/:x;!设置:变量/1..2/:x; ! s_con_num/1...4/:g,dplus,dminus;!软约束数量及相关参数; s_con(s_con_num(s_con_num));! s_con(s_con_num,variable):c;! 软约束系数; s_con(s_con_num,variable):c;! 结束集 数据。 g=1500 0 16 15; c=200 300 2 -1 4 0 0 5; 结束数据 min=dminus(2)+dplus(2);!第二个目标函数 2*x(1)+2*x(2)<12;!硬约束 @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i)); ! 软约束表达式;! dminus(1)=0; !第一个目标结果 @for(variable:@gin(x)); ! 结束 此时,第二个目标的最优值为 0,偏差为 0: 第三目标 !求 dminus(2)=0,然后求解第三个目标。 模型。 设置。 变量/1..2/:x;!设置:变量/1..2/:x; ! s_con_num/1...4/:g,dplus,dminus;!软约束数量及相关参数; s_con(s_con_num(s_con_num));! s_con(s_con_num,variable):c;! 软约束系数; s_con(s_con_num,variable):c;! 结束集 数据。 g=1500 0 16 15; c=200 300 2 -1 4 0 0 5; 结束数据 min=3*dminus(3)+3*dplus(3)+dminus(4);!第三个目标函数。 2*x(1)+2*x(2)<12;!硬约束 @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i)); ! 软约束表达式;! dminus(1)=0; !第一个目标约束条件; ! dminus(2)+dplus(2)=0; !第二个目标约束条件 @for(variable:@gin(x));! 结束 最终结果为 x1=2,x2=4,dplus(1)=100,最优利润为
-
使用 pytorch 构建 GAN 模型的评估 - 代码分析
-
深入探索 C++ 对象模型的数据成员访问效率分析 (3)
-
网络通信基础》难点分析 12:Linux epoll 模型
-
R 语言与 Garch 模型和回归模型对股价的分析--原文来源:顶端数据部落公众号
-
数学建模常用模型 10:数据包络(DEA)分析(投入产出法)
-
数学建模中的常用模型 (X):数据包络(DEA)分析法
-
数据包络分析 - SBM 建模(第一部分)