全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 经管代码库
1460 1
2015-02-13

包络分析DEA简介+MATLAB程序+SAS程序


   数据包络分析的SAS实现初探


    数据包络分析法(DEA, data envelopment analysis)由Charnes、Cooper和Rhodes在1978年首次提出,以相对效率概念为基础,根据多指标投入和多指标产出,用来评价相同类型部门或单位中各成员之间的相对有效性。


      国外开发的DEA软件较多,国内则较少,一方面是因为国内知识产权保护力度不够,另一方面相关应用研究一般落后于国外步伐。目前有相关的DEA求解软件如DEA Solver pro、DEAP、DEA Excel Solver、MaxDEA等。

      之前笔者也觉得DEA EXCEL等方便使用,后来用Matlab编码更能体现自己的模型。学习SAS后,发现其实SAS也是可以解决DEA问题的。现通过某数据来做个实例初探。以下为7个决策单元,前4个为输入变量,后3个为输出变量。
   

CITY青岛东营烟台潍坊威海日照滨州
CoalUse

0.71

0.76

0.69

1.02

0.79

1.84

1.05

ElecUse

495.44

695.85

673.95

967.21

436.18

1219.84

1040.84

HumanCap

547.60

126.00

434.10

513.50

173.30

182.50

250.40

FinanCap

658.06

179.80

407.53

358.26

200.59

124.35

201.17

CV1

306.38

99.18

361.43

359.28

171.18

112.08

178.07

CV2

1828.97

1914.81

2830.88

1961.40

1139.36

660.66

972.29

CV3

2339.46

662.36

1714.52

1221.16

800.41

441.33

667.22



1、Matlab程序实现包络分析




复制代码
matlab输出结果theta =
    1.0000    1.0000    1.0000    1.0000    1.0000    0.9458    0.9285
我们可以发现最后两个决策单元日照和滨州是无效率的。但是这一编程确实有些繁琐。我们可以通过一段SAS程序来直接求解某个决策单元的theta值。



2、SAS程序实现




编写的SAS程序如下:


复制代码

3、SAS程序解释




      上述的SAS程序用非常直接的方式将模型表示出来,利用lp过程步可以直接求得滨州的c(也就是matlab中的theta)为0.9285,其他决策单元求法类似。

      程序中_id_定义行名称,object表示第一行,Coaluse表示第二行,以此类推。x1-x7分别表示决策单元系数,每个城市投入产出指标值;c表示效率值,s1-s4表示输入松弛变量,s5-s7表示输出松弛变量,_type_表示运算符类型,程序中用了eq和min两种,_rhs_表示运算符右侧的常数项。      

      matlab程序中用了linprog(f,A,b,Aeq,beq,LB,UB)线性规划函数,输入矩阵部分直接引用excel了数据,在变换模型中具有更大的灵活性。SAS程序也可考虑使用循环和控制命令使其更加简便。笔者抛砖引玉,希望SAS在DEA应用中也可以有一席之地。




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-2-13 16:17:50
鼓励自己尝试写代码~~~~~~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群