标题 | MATLAB在DEA-Malmquist分析中的应用 |
范文 | 黎坚雄 摘? 要: DEA-Malmquist分析需要巨大的运算量,MATLAB软件集成多个经过优化的工具箱,能够降低DEA-Malmquist分析的时间开销。文章基于Inmaculada C. ?lvarez等人编写的开源MATLAB工具箱,进行DEA-Malmquist分析。程序运行结果表明,MATLAB软件能够胜任DEA-Malmquist的分析工作,可以為经济与管理学的研究提供强大的支持。 关键词: MATLAB; 数据包络分析(DEA); Malmquist指数; 线性规划 中图分类号:O221.1,TP311.1? ? ? ? ? ?文献标识码:A? ? ? ?文章编号:1006-8228(2021)07-42-04 Application of MATLAB in DEA-Malmquist analysis Li Jianxiong (Supervision and Audit Office, Sihui Prison of Guangdong, Sihui, Guangdong 526237, China) Abstract: DEA-Malmquist analysis requires a huge amount of calculations. MATLAB software integrates multiple optimized toolboxes, which can reduce the time overhead of DEA-Malmquist analysis. Based on the open source MATLAB toolbox written by Inmaculada C. ?lvarez and others, this paper conduct a DEA-Malmquist analysis. The operation results show that the MATLAB software is competent for DEA-Malmquist's analysis work and can provide the researches on economics and management with a strong support. Key words: MATLAB; Data Envelopment Analysis (DEA); Malmquist; linear programming 0 引言 数据包络分析(Data Envelopment Analysis, DEA)是一种以多个指标为输入变量,衡量不同决策单元(Decision-Making Unit)的绩效的一种分析方法,被广泛应用于绩效和效益的评价中[1-2];Malmquist指数是由StenMalmquist于1953年提出[3],最初用于消费分析。1994年,Rolf Fare,Grosskopf,Norris等人提出利用基于DEA的距离函数计算Malmquist指数,即DEA-Malmquist指数。自此,DEA-Malmquist被广泛应用于衡量城市的全要素生产率[4-5]。 MATLAB软件是由美国MathWorks公司推出的软件,旨在为向量和矩阵的运算提供一种可读性强、运行效率高的编程环境。MATLAB的编程语言被称为M语言,但由于MATLAB本身由C语言编写,因此MATLAB可以兼容C、C++、JAVA等主流编程语言。得益于强大的数据处理能力以及良好的程序可读性,MATLAB已经在图像处理、数值分析、无线通信等领域得到了广泛的应用。 Malmquist指数的核心,在于利用DEA求出的距离函数;而DEA的核心,则在于线性规划。在MATLAB的早期版本中,已经集成了线性规划函数。DEA和Malmquist中的各个变量均是以向量、矩阵表示,而向量和矩阵运算正是MATLAB所服务的领域。但是,目前国内基于MATLAB的数据包络分析的文献极少。彭育威等人[6]最先提出M语言的DEA程序,而后秦毅等人[7]在其基础上提出超效率DEA的M语言程序,胡跃红[8]戚峰[9]等均是在彭育威等人的M程序的基础上进行DEA分析。 目前,国内利用MATLAB进行DEA-Malmquist分析的研究尚处于空白阶段。西班牙马德里自治大学Inmaculada C. ?lvarez等人编写的开源工具箱MATLAB,可用于DEA-Malmquist分析[10]。该MATLAB工具箱集成多种DEA以及Malmquist算法,可以方便地对样本进行DEA或DEA-Malmquist分析。但是,目前国内关于DEA-Malmquist的研究,一般要求将Malmquist指数中的技术效率指数(Technical Efficiency Change, TEC)分解为纯技术效率指数(Pure Technical Efficiency Change, PTEC)和规模效率指数(Scale Efficacy, SE)[11-12],而Inmaculada C. ?lvarez等人开发的Malmquist指数仅仅分解为TEC和技术进步指数(Technical Change, TC),难以直接应用到实际的DEA-Malmquist分析中。因此,本文将基于开源MATLAB工具箱,进行DEA-Malmquist分析。 1 基于MATLAB的DEA分析 1.1 DEA基本原理 DEA是比较不同DMU在某个时间点的绩效或效率的方法。考虑有n个DMU的规模报酬不变的BCC模型,衡量各个DMU的指标有m个,各个DMU的绩效指标有s个,给定输入矩阵[X=xT1xT2…xTmT][X=xT1xT2…xTmT],输出向量[Y=yT1yT2…yTs],其中(.)T代表矩阵转置,[xi=[x1ix2i…xni]]代表了第i个描述DMU的指标,[xki]代表第k个DMU的第i个指标的值。DEA等价于解决下列问题: [minθ,λθ] [s.t θxi=Xλ, Yλ=yi, λi≥0]? ⑴ 其中[λ=[λ1λ2…λn]T]是一个半正定向量。由于有n个DMU,因此需要重复⑴的过程n次才能解出[λ]。 令[s-=θxi-Xλ],[s+=Yλ-yi],则式⑴可转化为以下问题: [mins+,λ,s-ω=es++es-] [? ? ? ? ? ?s.ts-=θxi-Xλ, s+=Yλ-yi, λi≥0,s-i≥0,s+i≥0] ⑵ 其中[e=1…1]。对于规模报酬可变模型(Variable Return to Scale, VRS),需要满足[eλ=1],而规模报酬不变模型(Constant Return to Scale, CRS)则无此限制。CRS模型下的[θCRS]就是TEC, [θVRS]就是PTEC;两者的比值[θCRS/θVRS]就是SE。 对于DEA是否有效,可通过三个条件进行判断:①[θi=1]且[s-=s+=0]时,则第i个DMU,即DMUi有效;②只满足[θi=1],则DMUi弱有效;③[θi<1],则DMUi非有效。 1.2 MATLAB在DEA分析中的应用 在文献[10]提供的DEA工具箱中,对数据进行DEA分析的函数,主要有dea(.)函数和deascale(.)函数。dea(.)函数主要用于分析DMU是否有效,可选CRS模型或VRS模型;deascale(.)函数可以直接输出TEC、PTEC、SE的值,能满足绝大多数场景的DEA分析。 将文献[10]中的DEA工具箱下载后,将文件夹deatoolbox下的所有m程序复制到MATLAB运行环境中,并建立程序如下的主函数m文件: load 'deadataFLS'; io = dea(X, Y, 'orient', 'io'); deadisp(io); 程序的运行结果如表1所示。 表1是dea(.)函数基于CRS模型的演示样例,输入矩阵X,Y由文件夹deatoolbox中deadataFLS.mat文件提供;slackX1和slackX2就是s-,slackY就是s+。如果想更换为VRS模型,则运行语句需变更为: load 'deadataFLS'; io=dea(X, Y, 'orient', 'io', 'rts', 'vrs');; deadisp(io); 在DEA分析中,如果可以确定输入指标的确会影响DMU的绩效评价,则可以不对DMU进行有效性评价,而直接分析其TEC、PTEC、SE。此时,就需要使用deascale(.)函数。deascale(.)函数的调用格式如下: load 'deadataFLS'; io=deascale(X, Y, 'orient', 'io'); deadisp(io); 表2是deascale(.)函数的演示实例,可以看到,CRS与VRS的比,或者说TEC与PTEC的比,即为规模效率指数SE。 2 基于MATLAB的Malmquist分析 2.1 Malmquist分析的基本原理 DEA分析是对静态指标的分析,而Malmquist分析则是对静态指标的分析,Malmquist指数要求至少有两个不同时间点的数据。从t时间到t+1时间的Malmquist指数可以表示为[11]: [Mal=TEC×TC] ⑶ 其中,TC的求解较为复杂,需要将当期的投入、产出的DEA分析结果投影到下一期,在此本文不再赘述。TEC则可继续分解为: [TEC=PTECt+1×SEt+1PTECt×SEt] ⑷ 其中[PTECt]代表时间t的PTEC指数,显然,它可以用DEA分析的方法求取。將TEC分解为不同时间的PTEC与SE的变动率的乘积,可以显示出变动规模报酬的情况下,技术进步对总体效率的贡献情况以及规模效率对总体效率的变动情况。 2.2 MATLAB在Malquist分析中的应用 在文献[10]提供的工具箱中,进行Malquist指数分析的函数为deamalm(.)。由于Malquist指数要求使用多个时间点的数据,因此,输入矩阵应该是一个三维矩阵,矩阵的第一、二维代表每一维度的矩阵的行、列数,第三维则点不同的时间。 值得注意的是,deamalm(.)函数的输出结果只包含了⑶式子中的三个参数。如果要将TEC继续进行分解,则需要进一步对不同时间的数据进行DEA分析,具体做法是:①利用deascale(.)函数,对不同维度的数据进行DEA分析;②从结构体变量eff中提取scale变量,得到不同时刻的SE;③从结构体变量eff中提取vrs变量,得到不同时刻的PTEC;④将前后时刻的scale变量进行点除操作,即可得到各期的SE的变动率;同理可得各期PTEC的变动率。 下面给出deamalm(.)函数的使用样例。X的DMU数量为5,只有一个指标衡量各个DMU;一共有三个时间节点。 clc clear X = [2; 3; 5; 4; 4]; X(:, :, 2) = [1; 2; 4; 3; 4]; X(:, :, 3) = [0.5; 1.5; 3; 2; 4]; Y = [1; 4; 6; 3; 5]; Y(:, :, 2) = [1; 4; 6; 3; 3]; Y(:, :, 3) = [ 2; 4; 6; 3; 1]; malmquist = deamalm(X, Y, 'orient', 'io'); deadisp(malmquist) SC_struct_1=deascale(X(:, :, 1),Y(:, :, 1),'orient', 'io'); SC_struct_2=deascale(X(:, :, 2),Y(:, :, 2),'orient', 'io'); SC_struct_3=deascale(X(:, :, 3),Y(:, :, 3),'orient', 'io'); SC_1=SC_struct_2.eff.scale./SC_struct_1.eff.scale; SC_2=SC_struct_3.eff.scale./SC_struct_2.eff.scale; PC_struct_1=SC_struct_1.eff.vrs; PC_struct_2=SC_struct_2.eff.vrs; PC_struct_3=SC_struct_3.eff.vrs; PC_1=PC_struct_2./PC_struct_1; PC_2=PC_struct_3./PC_struct_2; disp([SC_1,SC_2,PC_1,PC_2]); 上述语句的输出结果如表3、表4所示。 表3是deamalm(.)函数的直接输出结果,M1、M2分别是不同时期的Malmquist至少,MTEC1、MTEC2是不同时期的TEC,MTC1、MTC2是不同时期的TC。表3的控制句柄为deadisp(malmquist)及之前的语句,其后的语句对应表4的内容。表4中,前两列对应不同时期的SE变动率,后两列对应不同时期的PTEC变动率。 3 结束语 本文基于西班牙马德里自治大学Inmaculada C. ?lvarez等人编写的开源MATLAB工具箱,进行DEA-Malmquist分析。针对该工具箱在进行Malmquist分析过程中,没有将TEC进一步分解的问题,本文给出了相应的思路以及程序样例。程序运行结果表明,MATLAB不仅可以对数据进行DEA分析,也可以进行DEA-Malmquist分析,并且其最终的运行结果可以根据研究需要做进一步的分解,使得该工具箱更加符合当下我国经济与管理学研究的习惯。 参考文献(References): [1] 杨望,徐慧琳,谭小芬,薛翔宇.金融科技与商业银行效率——基于DEA-Malmquist模型的实证研究[J].国际金融研究,2020.7:56-65 [2] 李彩霞,韩贤.京津冀地区农村金融效率测度与分析——基于DEA-Malmquist指数法[J].会计之友,2020.3:127-131 [3] MALMQUIST S.Index numbers and indifference surface[J].Trabajos de Estatistica,1953(4):209-242 [4] 胡振华,龙婧宇.基于DEA-Malmquist的湘江流域城市群河流环境效率研究[J].科技管理研究,2020.40(2):237-245 [5] 杨方方.江苏省13市经济生态化综合发展效率评估和分析——基于DEA-Malmquist指數[J].中国市场,2014.46:33-35 [6] 彭育威,吴守宪,徐小湛.MATLAB在数据包络分析中的应用[J].西南民族学院学报(自然科学版),2002.2:139-143 [7] 秦毅,姜钧译.应用Matlab解决常用DEA模型的评价分析[J].电脑编程技巧与维护,2013.22:66-68 [8] 胡跃红,赵昱焜.利用MATLAB求解同时面向投入产出型DEA问题[J].商场现代化,2009.6:24 [9] 戚峰,吴帅,邢鑫鑫,戚勃.基于MATLAB求解有权重限制的DEA模型[J].统计与决策,2011.9:152-155 [10] SInmaculada C. ?lvarez, Javier Barbero and José L.ZofíoA Data Envelopment Analysis Toolbox for MATLAB[OL].https://github.com/javierbarbero/DEAMATLAB,2019-06-20. [11] 陈玉和,李佳,孙作人.基于DEA-Malmquist指数的矿业城市全要素生产率分析[J].青岛科技大学学报(社会科学版),2010.26(2):11-16 [12] 姚平,黄文杰.基于DEA-Malquist模型对煤炭企业全要素生产率的分析[J].资源开发与市场,2012.28(12):1078-1082 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。