R语言实现随机前沿分析SFA、数据包络分析DEA、自由处置包分析FDH和BOOTSTRAP方法

在经济学中,技术效率是指在既定的投入下产出可增加的能力或在既定的产出下投入可减少的能力。

由Kaizong Ye,Weilong Zhang撰写

常用度量技术效率的方法是生产前沿分析方法。所谓生产前沿是指在一定的技术水平下,各种比例投入所对应的最大产出集合。而生产前沿通常用生产函数表示。

前沿分析方法根据是否已知生产函数的具体的形式分为参数方法和非参数方法,前者以随机前沿分析(StochasticFrontierAnalysis,下文简称SFA)为代表,后者以数据包络分析(DataEnvelopeAnalysis,下文简称DEA)为代表。


本文在R软件中实现SFA、DEA与自由处置包分析FDH模型。

用R进行模拟

按照p=0.2的二项分布,随机生成一个大小为100的向量。

×

SFA与DEA的共同点

SFA与DEA都是前沿度量方法,它们的共同基础是距离函数。SFA与DEA都是在通过构造生产前沿的基础上度量技术效率。它们度量出的技术小效率是相对效率,其效率值在样本内部具有很强的可比性,但在不同样本间计算出的效率值可比性不强。

SFA与DEA的不同点

(1)SFA与DEA模型基本假设和模型扩展的复杂程度不同

SFA的模型基本假设较为复杂,需要考虑生产函数、技术无效率项分布的具体形式,这直接导致模型很难做进一步扩展。因为合成误差项ε的密度函数形式复杂,相应的似然函数更加复杂,这给参数估计带来很多计算上的困难,因此很难进一步分析异方差等情况或对做进一步模型扩展。而DEA的主要优点是不需要考虑生产前沿的具体形式,仅需要投入产出数据,模型容易做其他形式的扩展,目前已有数十种DEA模型。此外,由于SFA的模型假设较为复杂,因此对投入产出的数据要求更高,若投入产出数据不符合模型基本假设,则易出现上文分析的的偏度问题而最终导致计算失败。

(2)SFA与DEA对实际产出的解释和处理方法不同。

SFA最主要的优点是考虑了随机因素对于产出的影响,它实质上将实际产出分为生产函数、随机因素和技术无效率三部分。而DEA的最大缺点是把实际产出小于前沿产出的原因全部归结于技术效率原因,忽略了随机因素对于产出的影响,它实质上将实际产出分为生产前沿和技术无效率两部分。但DEA的一个优点是能直接处理多产出情况,而SFA处理多产出则较为复杂,需要将多产出合并成一个综合产出或者利用距离函数解决。

(3)SFA与DEA构造生产前沿的方法不同。

SFA的基本思想是利用生产函数和随机扰动项构造出随机生产前沿,而DEA是根据个决策单元的投入产出数据,选出一个或几个决策单元作为技术有效点,进而构造出生产前沿。对于面板数据,SFA是根据所有周期的数据仅构造出一个统一的生产前沿,而DEA是每个周期各构造一个生产前沿。SFA是通过极大似然法估计出各个参数值,然后用技术无效率项的条件期望作为技术效率值,其结果一般不会有效率值为1的决策单元,而DEA是通过线性规划计算出效率值,其结果至少有一个效率值为1的决策单元。SFA可对结果做相应的统计检验或者求相应的置信区间,而DEA则不可。此外,若样本容量很大,这些样本可能会因不满足线性规划的一些基本假设而最终导致DEA的计算失败,而SFA中使用的极大似然估计法估计出的参数具有大样本的相合性,因此,SFA更适合大样本计算。

(4)SFA与DEA计算结果的稳定性不同。

从方法论上考虑,SFA是用极大似然估计法来估计出各个参数后进而用条件期望最终计算出各个决策单元的技术效率,该方法充分利用了每个样本的信息并且是“同等”对待每个样本。因此SFA的计算结果较为稳定,不易受异常点的影响。对于面板数据,由于SFA是仅构造出一个前沿面,而在模型中又有上文(2)式的假定,因此即使某一周期数据整体都有异常对全部结果的影响也不是很大。而DEA计算结果的稳定性较差,容易受异常点的影响。由于DEA是主要通过技术有效的样本来构造前沿,因此这些样本的信息就最终决定了前沿面的形状,进而很大程度上决定了整体的计算结果。若这些样本存在异常点,通常对结果有较大的影响。

(5)SFA与DEA可获得的相关经济信息不同。

就本文所总结的模型而言,除了能够计算技术效率外,SFA还可通过参数值求出投入的产出弹性和规模报酬情况。而在DEA的BCC模型中,可求出规模效率和规模报酬情况。

(6)SFA与DEA分析影响效率因素的方法不同。

通常在计算出技术效率后会进一步分析影响效率的因素。对于SFA,只需将技术无效率项表示成影响因素的线性形式后在原有模型中即可完成对影响因素各个参数的估计。对于DEA,通常需要分为两阶段。第一阶段是计算其技术效率,第

二阶段是以技术效率为因变量以影响因素为自变量通过二元离散选择模型进行分析。因此,在分析影响效率因素上,SFA更为方便。由以上比较可知SFA与DEA之间在诸多方面具有优缺点互补的特点。对于同一问题,当用SFA和DEA分别度量时,其结果会有差异。国内外学者普遍用等级相关系数作为判断这种差异是否可接受的主要依据。如果差异比较大,并且不好判断哪种方法更好时,此时可将两种方法或两种方法的度量结果综合起来,可采用国外学者提出的随机非参数方法或我国学者提出的组合综合评价方法。



> x

plot(table(x), main = "frequency")

其他分布。泊松P(λ)(函数rpois)等。

2. 数字变量 按照高斯分布N(μ=1,σ=1)随机生成一个大小为100的向量。

> x hist(x, main = "")

其他分布。Uniform U[a,b](函数runif)等等。

模拟数据

输出y和输入x都是n=15的大小

真正的前沿是由函数定义的。 
 


视频

什么是Bootstrap自抽样及R语言Bootstrap线性回归预测置信区间

探索见解

去bilibili观看

探索更多视频

为了模拟数据:

1. 定义输入的矢量为x∼U[0,1]

2. 定义一个向量u∼N+(µ = 0.25, σ = 0.2)

3. 输入的矢量定义为 

函数set.seed允许我们保持相同的模拟数据

> u = rtmvnorm(n = ns, mean = c(0.25), sigma = c(0.2),
+ lower = c(0))
> y = ybar/(1 + u)

数据的表示方法

模拟数据。

> plot(y ~ x

绘制真正的边界。

> lines(t.fr ~ x.seq)

 

“真实前沿 “效率测算

以产出为导向的测算。

表:真实_前沿效率_

随机前沿

1.用函数lm调整一个线性模型,并保留回归线的系数β:y = α + βx

2. 找到能使(yi-yˆi)最大化的公司k,i=1,…,n。注意,公司k可以通过函数识别来手动找到和检测

3. 计算α 0,使回归线y = α 0 + βx穿过企业k,并代表随机前沿。

1. OLS 模型

> res.lm <- lm(y ~ x)

R语言时变面板平滑转换回归模型TV-PSTR分析债务水平对投资的影响

阅读文章


2. 使用函数识别

> identify(x, y)


随时关注您喜欢的主题


3. 找到α0

> alpha2 <- y\[3\] - beta.lm\[2\] *
+ x\[3\]
> plot(y ~ x, type = "p",
+ 1))

随机前沿效率测算

让我们定义f1 : x → α 0 + βx

> f1 = function(x) alpha2 + beta.lm\[2\] * x
> f1.inv = function(x) (x - alpha2)/beta.lm\[2\]

面向产出的方法。

面向输入的方法:

Shepard 方法:

DEA – FDH 表示

手动检测位于两个边界上的公司

> plot(y ~ x)
> lines(x\[c(2, 9, 3, 4)\], legend = c("DEA",
+ "FDH"))

DEA-FDH效率前沿/衡量标准

让我们考虑5号公司

1. 如果该公司在输出方向上是有效的,它将位于前沿线的哪一部分? 在输入方向上?2. 利用这个估计前沿的位置,计算出效率的衡量标准

Naive Bootstrap

重复B次(用循环的方式)

1.用函数样本在15个观测值中取样

2.计算前沿的新估计值

3.计算新的效率方法

4. 储存结果,计算偏差, 方差, 置信区间

在62个农场观察到一个输出变量和三个输入变量

对真实数据的分析

数据集

> plot(y ~ x1,pch = 16, col = "blue")
> abline(lm(y ~ x1, data), col = "red")

散点图3-d

> scatterplot3d(x1,
+ x2, y)

数据结构

p个输入包含在一个p×n的矩阵中

> input <- t(cbind(spain$x1, spain$x2, spain$x3))

q个输出包含在一个q×n的矩阵中

> output <- t(matrix(spain$y))

效率的衡量标准

计算 DEA 效率估计值

计算 FDH 效率估计值

计算m阶效率估计值

计算非参数的条件和非条件的α-量化估计(默认情况下,α=0.95

> res <- rbind(dea, fdh, orderm,
+ res.hquan)

你可以使用函数order或sort来计算企业的排名,排名根据效率测算。

> plot(density(res.dea)

Bootstrap

函数boot实现了Simar和Wilson(1998)的bootstrap方法,用于估计Shepard(1970)输入和输出距离函数的置信区间。

> boot(input, output)


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds