stata:数据包络分析(DEA)简明教程
数据包络分析(DEA)是是由美国著名运筹学家 A.Charnes(查恩斯)、W.W.Cooper(库铂)、E.Rhodes(罗兹)于 1978 年首先提出,在相对效率评价概念基础上发展起来的一种非参数检验方法。此文章主要介绍如何在stata中进行DEA分析以及进行boostrap检验,用到的命令为tenonradial
,teradialbc
等。需要说明的是,尽管此命令的运算速度与矩阵的最大处理量要优于dea
命令,但是其仍有一些限制。
DEA模型简介
技术效率的概念
在数据包络分析中,技术效率是指一个生产单元(DMU)的生产水平达到该行业技术水平的程度。技术效率可以从投入和产出两个角度来衡量,在投入既定的情况下,技术效率由产出最大化的程度来衡量。在产出既定的情况下,技术效率由投入最小化的程度来衡量。当然,在计算TFP的过程中,一般都是投入既定的。
下面举一个一种投入一种产出时的例子,来帮助我们理解技术效率的概念。
单位 | xxx(投入) | yyy(产出) | y/xy/xy/x | y/xy/xy/x(标准化) |
---|---|---|---|---|
A | 2 | 1 | 0.5 | 0.625 |
B | 3 | 2 | 0.667 | 0.533 |
C | 4 | 3 | 0.75 | 0.938 |
D | 5 | 4 | 0.8 | 1.00 |
E | 5 | 2 | 0.4 | 0.5 |
在此表中,y/xy/xy/x反应各个生产单元技术效率的高低,y/xy/xy/x(标准化)是将各单元的y/xy/xy/x除以其中的最大值。这样就是为了更好的比较这一数值。
当涉及多个产出时,就会对各个投入与产出赋予一定的权重,然后分别加权,计算产出投入比。如:
v=v1x1+v2x2+...+vnxnv = v_1x_1+v_2x_2+...+v_nx_nv=v1x1+v2x2+...+vnxn
u=u1y1+u2y2+...+unynu=u_1y_1+u_2y_2+...+u_ny_nu=u1y1+u2y2+...+unyn
则产出投入比为u/vu/vu/v
数据包络分析就是在讨论如何通过数据本身来获得权重,从而计算各个DMU的技术效率。
径向距离模型
此命令径向效率的度量方法采用的是Debreu–Farrell(Debreu 1951; Farrell 1957)方法。假设有kkk个DMUDMUDMU。对于DMUKDMU_KDMUK,有NNN种投入,记为xk=(xk1,...,xkN)∈RNx_k =(x_{k1},...,x_{kN}) \in R^Nxk=(xk1,...,xkN)∈RN,有MMM种产出,记为yk=(xk1,...,xkM)∈RMy_k =(x_{k1},...,x_{kM}) \in R^Myk=(xk1,...,xkM)∈RM。然后我们假设在技术条件TTT下产出yyy由投入xxx产出,数学表达为:
T={(x,y):yareproduciblebyx}T = \{(x,y):y\ are\ producible\ by\ x\}T={(x,y):y are producible by x}
那么在科技TTT下,生产可能集表示为:
P(x)={y:(x,y)∈T}P(x) = \{y:(x,y) \in T\}P(x)={y:(x,y)∈T}
投入的需求集表示为:
P(y)={x:(x,y)∈T}P(y) = \{x:(x,y) \in T\}P(y)={x:(x,y)∈T}
以生产可能集为例,技术效率就表示为,某个给定数据点与生产可能集边界的距离。若以DEA模型来测量此种技术效率从,则对于kkk个DMUDMUDMU,每个DMUDMUDMU有NNN种投入,MMM种产出的数据集来说。Debreu–Farrell(Debreu 1951; Farrell 1957)的以产出为导向的估计方法,可以通过下述线性规的方程式来表示,对于每一个数据点k(k=1,2,3...K)k(k= 1,2,3...K)k(k=1,2,3...K)
Fko(yk,xk,y,x∣CRS)=maxθs.t.∑k=1Kzkykm≥ykmθm,m=1,...,M∑k=1Kzkxkn≤xknθn,n=1,...,Nzk≥0F_k^o(y_k,x_k,y,x|CRS)=max\theta \\ s.t. \sum_{k=1}^Kz_ky_{km} \geq y_{km}\theta_m,m=1,...,M \\ \sum_{k=1}^Kz_kx_{kn} \leq x_{kn}\theta_n,n=1,...,N \\ z_k \geq 0Fko(yk,xk,y,x∣CRS)=maxθs.t.k=1∑Kzkykm≥ykmθm,m=1,...,Mk=1∑Kzkxkn≤xknθn,n=1,...,Nzk≥0
其中yyy是一个K×MK\times MK×M的产出矩阵,xxx是一个K×NK\times NK×N的投入矩阵。估计P(x)P(x)P(x)是最小的包围面(smallest convex free-disposal hull )。上述线性规划求解的是规模报酬不变(CRS)的技术效率。在其他关于规模报酬的假设下,只需改变zkz_kzk的约束,例如规模报酬可变(VRS),设置∑k=1Kzk=1\sum_{k=1}^Kz_k=1∑k=1Kzk=1即可。
非径向效率模型
此命令的非径向效率测量方法是Russell(Färe and Lovell 1978;
Färe, Grosskopf, and Lovell 1994a)法。则对于以产出为导向的非径向量度定义为:
RMko(yK,xK,y,x∣CRS)=max{M−1∑m=1Mθm:(θ1yk1,...,θmykm∈P(x),θm≥0,m=1,...M)}RM_k^o(y_K,x_K,y,x|CRS)=max \{M^{-1}\sum_{m=1}^M \theta_m: (\theta_1y_{k1},...,\theta_my_{km}\in P(x),\theta_m\geq0,m=1,...M)\}RMko(yK,xK,y,x∣CRS)=max{M−1m=1∑Mθm:(θ1yk1,...,θmykm∈P(x),θm≥0,m=1,...M)}
其线性规划方程式定义为:
RMko(yK,xK,y,x∣CRS)=M−1max∑m=1Mθms.t.∑k=1Kzkykm≥ykmθm,m=1,...,M∑k=1Kzkxkn≤xknθn,n=1,...,Nzk≥0RM_k^o(y_K,x_K,y,x|CRS)=M^{-1}max\sum_{m=1}^M \theta_m \\ s.t. \sum_{k=1}^Kz_ky_{km} \geq y_{km}\theta_m,m=1,...,M \\ \sum_{k=1}^Kz_kx_{kn} \leq x_{kn}\theta_n,n=1,...,N \\ z_k \geq 0RMko(yK,xK,y,x∣CRS)=M−1maxm=1∑Mθms.t.k=1∑Kzkykm≥ykmθm,m=1,...,Mk=1∑Kzkxkn≤xknθn,n=1,...,Nzk≥0
对径向模型使用Boostrap进行假设检验
主要介绍此命令规模收益的两个假设检验,首先是:
Test≠1:H0:TisgloballyCRSH1:TisVRSTest \neq 1: H_0: T\ is\ globally\ CRS \\ H_1: T\ is\ VRSTest=1:H0:T is globally CRSH1:T is VRS
如果假设H0H_0H0被拒绝,则可以进行下述假设检验:
Test≠2:H0′:TisgloballyNIRSH1:TisVRSTest \neq 2: H_0': T\ is\ globally\ NIRS \\ H_1: T\ is\ VRSTest=2:H0′:T is globally NIRSH1:T is VRS
也是就是说先查看此技术条件下是否是规模报酬不变的,若不是再看是否是NIRS(Non-Decreasing Returns to scale)的。
stata命令的实现
tenonradial命令
tenonradial
使用非径向模型RM估计技术效率,语法详情:
tenonradial outputs = inputs [(ref outputs = ref inputs)] [if] [in] [,rts(rtsassumption) base(basetype) reference(varname) tename(newvar) noprint]
其中
output
是产出变量
input
是投入变量
ref outputs
是产出变量的个数
ref inputs
是投入变量的个数
rts(rtsassumption)
指定规模收益假设,有CRS,VRS,NIRS三种
base(basetype)
设置最优化的方向,即面向产出base(output)
,面向投入base(input)
reference(varname)
设定技术参考集
tename(newvar)
产生newvar
,其包含非径向测量的技术效率。
noprint
取消估算详细信息,数据描述和参考集。
teradialbc命令
teradialbc
命令使用径向模型估计技术效率,语法详情:
teradialbc outputs = inputs [(ref outputs = ref inputs)] [if] [in] [,rts(rtsassumption)base(basetype) reference(varname) subsampling kappa(#) smoothed heterogeneous reps(#) level(#) tename(newvar) tebc(newvar) biasboot(newvar) varboot(newvar) biassqva(newvar)telower(newvar) teupper(newvar) noprint nodots]
其区别主要在于Boostrap部分,详细内容参见help teradialbc
teradialbc命令的函数支持
stata需要已下载kdens bw()
与mm quantile()
nptestind命令
nptestind
进行独立性检验
nptestrts命令
nptestrts
进行规模收益检验
实例应用
数据来源于Charnes, Cooper, and Rhodes (1981),并人为的产生一个新变量dref
来说明新命令的功能
set seed 717117
use ccr81
generate dref = x5 != 10
teradial y1 y2 y3 = x1 x2 x3 x4 x5, rts(crs) base(output) reference(dref) tename(TErdCRSo)
teradial y1 y2 y3 = x1 x2 x3 x4 x5, rts(nirs) base(output) reference(dref) tename(TErdNRSo) noprint
teradial y1 y2 y3 = x1 x2 x3 x4 x5, rts(vrs) base(output) reference(dref) tename(TErdVRSo) noprint
tenonradial y1 y2 y3 = x1 x2 x3 x4 x5, rts(crs) base(output) reference(dref) tename(TEnrCRSo) noprint
tenonradial y1 y2 y3 = x1 x2 x3 x4 x5, rts(nirs) base(output) reference(dref) tename(TEnrNRSo) noprint
tenonradial y1 y2 y3 = x1 x2 x3 x4 x5, rts(vrs) base(output) reference(dref) tename(TEnrVRSo) noprint
list TErdCRSo TErdNRSo TErdVRSo TEnrCRSo TEnrNRSo TEnrVRSo in 1/7
分别使用径向与非径向模型测量三种规模收益状况下的技术效率。
接下来使用nptestind
进行boostrap检验
matrix testsindpv = J(2, 3, .)
matrix colnames testsindpv = CRS NiRS VRS
matrix rownames testsindpv = output-based input-based
nptestind y1 y2 y3 = x1 x2 x3 x4 x5, rts(crs) base(output) reps(999) alpha(0.05)
matrix testsindpv[1,1] = e(pvalue)
nptestind y1 y2 y3 = x1 x2 x3 x4 x5, rts(nirs) base(output) reps(999) alpha(0.05) noprint
matrix testsindpv[1,2] = e(pvalue)
nptestind y1 y2 y3 = x1 x2 x3 x4 x5, rts(vrs) base(output) reps(999) alpha(0.05) noprint
matrix testsindpv[1,3] = e(pvalue)
nptestind y1 y2 y3 = x1 x2 x3 x4 x5, rts(crs) base(input) reps(999) alpha(0.05) noprint
matrix testsindpv[2,1] = e(pvalue)
nptestind y1 y2 y3 = x1 x2 x3 x4 x5, rts(nirs) base(input) reps(999) alpha(0.05) noprint
matrix testsindpv[2,2] = e(pvalue)
nptestind y1 y2 y3 = x1 x2 x3 x4 x5, rts(vrs) base(input) reps(999) alpha(0.05) noprint
matrix testsindpv[2,3] = e(pvalue)
matrix list testsindpv
P值结果如下:
CRS NiRS VRS
output-based .06906907 .25625626 .04804805input-based .03703704 .001001 .23323323
Malmquist指数
Malmquist指数的计算与分解公式此处不再列出,只是用程序来举例
use pwt56, clear
reshape wide y k l, i(nu country) j(year)
teradial y1965 = k1965 l1965 (y1965 = k1965 l1965), rts(crs) base(output) tename(F11) noprint
teradial y1990 = k1990 l1990 (y1965 = k1965 l1965), rts(crs) base(output) tename(F21) noprint
teradial y1965 = k1965 l1965 (y1990 = k1990 l1990), rts(crs) base(output) tename(F12) noprint
teradial y1990 = k1990 l1990 (y1990 = k1990 l1990), rts(crs) base(output) tename(F22) noprint
generate mpi = sqrt(F12 / F22 * F22 / F21)
generate effch = F11 / F22
generate techch = mpi / effch
PS:文章中所用到的学习资料为《数据包络分析方法与MaxDea软件》与文章“Nonparametric frontier analysis using Stata
”,此资料可在我的公众号“肖夕木的自习室”中回复dea获取。至于文中的数据文件可以自行在stata上下载,当然,在我的dea学习资料中也有包含。
stata:数据包络分析(DEA)简明教程相关推荐
- 数据包络分析DEA(数学建模)
一.模型背景 数据包络分析是线性规划模型的应用之一,常被用来衡量拥有相同目标的运营单位的相对效率. 数据包络分析是一种基于线性规划的用于评价同类型组织(或项目)工作绩效相对有效性的特殊工具手段.这类组 ...
- 仁慈型dea matlab程序,数据包络分析(DEA)方法..docx
数据包络分析(DEA)方法. 二.数据包络分析(DEA)方法数据包络分析(data envelopment analysis, DEA)是由著名运筹学家Charnes, Cooper和Rhodes于1 ...
- DEAP2.1——数据包络分析(DEA——CCR、BCC)
1 软件介绍 基础文件有DEAP.EXE DEAP.000 两个文件,有则可以正常运行. 1.将excel数据复制进data.DTA文件(用笔记本txt打开):产出指标数据在前 2.在1.ins输入参 ...
- DEA(数据包络分析)程序模板
在人们的生产活动和社会活动中常常会遇到这样的问题:经过一段时间之后,需要对具有相同类型的部门或单位(称为决策单元)进行评价,其评价的依据是决策单元的"输入"数据和"输出& ...
- 数据包络分析法(DEA)在数学建模中的应用
简介 数据包络分析方法(Data Envelopment Analysis,DEA)是运筹学.管理科学与数理经济学交叉研究的一个新领域.它是根据多项投入指标和多项产出指标,利用线性规划的方法,对具有可 ...
- matlab包络分析函数,数据包络分析 (MATLAB代码).doc
数据包络分析 (MATLAB代码) X=[] % 输入多指标输入矩阵X Y=[] % 输入多指标输出矩阵Y [n,m]=size(X) % n为输入的指标数,m为决策单元数 s=size(Y) % s ...
- 效率评价方法--数据包络分析
一. 数据包络分析方法概念 1.1 理论背景 我们常常需要对具有相同类型的部门或单位(称为决策单元)进行评价,其评价的依据是决策单元的"输入"数据和"输出"数据 ...
- 数据包络分析--两阶段加性网络DEA--使用优化黄金分割比例算法(第一篇)
数据包络分析-两阶段加性网络-使用黄金分割比例算法 文献介绍 乘子模型 基础信息 黄金分割比例算法 例子 文献介绍 如果阅读过我前面的文章<数据包络分析-加性网络DEA分解>,那么这篇文章 ...
- 数据包络分析及模糊综合评价法各自的优点,缺点,应用范围
数据包络分析(Data Envelopment Analysis, DEA)是一种用来衡量组织(如企业)或个体(如工人)的效率的方法,它可以用来评估组织或个体在使用有限的资源情况下所能实现的最大产出. ...
- 数据包络分析工具箱 EDA 算法分析
数据包络分析工具箱是MATLAB的新包,包括计算效率和生产率测量的功能.该软件包涵盖了径向,定向,添加,分配,Malmquist和Malmquist-Luenberger配方. dea functio ...
最新文章
- 用tcpdump查看端口包
- Pandas处理时序数据(初学者必会)!
- 标记的用法(小例子)
- Linux常用端口查询命令及常见端口和端口分类
- 计算机课组会议讲话,在计算机部教师会议上的讲话
- Java两则故障分析和常见连接超时时间
- hibernate数据类型与OR映射
- python list,str的拼接与转换
- android os build初始化,Android 关于android.os.Build介绍
- linux中脚本后台执行的方法
- 两位一体数码管引脚图_LED数码管你知道多少?
- RM遥控器接收程序的分析
- JDK自带的实用工具——native2ascii.exe
- Python基础知识详解(十)小结,用python实现教师信息管理系统
- 中考计算机必背知识点,语文中考必背知识考点(完整版)
- Elmo NAACl 2018
- Vue3 tailwindui
- pyqt5 制作壁纸切换工具实例 第一章
- 网络中BN层的作用以及为什么冻结BN层
- Chipmunk物理引擎总结