目录
一、文献综述
二、理论原理
三、实证模型
四、稳健性检验
五、程序代码及解释
一、文献综述
自 Aigner 等(1977)、Meeusen 和 van den Broeck(1977)引入随机前沿模型以来,该模型已有 40 多年的历史。它由确定前沿目标的确定性部分、确定双边误差项的随机部分和确定与随机前沿距离的单边无效误差项组成,可用于研究不同行业的生产、成本、收入、利润等目标,在教育、金融市场、房地产、交通等领域得到了广泛运用。
Stata 提供了 frontier 命令来估计随机前沿模型的参数,但各种命令都没有提供控制模型内生性的方法。如果边界或无效率项的决定因素与模型的双边误差项相关,则估计量的结果将受到内生性的污染。例如,Karakaplan 和 Kutlu(2017)设计了一个随机前沿估计器,用于解决面板中的内生性问题。Stata 的 xtfrontier 命令和 Belotti 等(2013)的 sfpanel 命令适用于面板随机前沿模型,但忽略了内质性问题。
在相关研究中,鲁晓东(2008)通过对比各类 tfp 估算方法,结合中国工业企业数据库,对全要素生产率进行了深入研究;张宁多年来专注于资源环境经济、效率与生产率分析等方面,提出了多种改进的全要素生产率模型和能源环境效率模型,成果丰硕,以第一或通讯作者在 Science、Nature 子刊、Cell 子刊、《经济研究》等权威期刊发表论文 70 余篇,18 篇论文进入 esi 热点和高被引论文;连玉君(2012)等学者也在效率分析领域做出了重要贡献,其研究涉及各类随机边界模型,包括 sfa 估算效率的基本原理、异质性 sfa、双边 sfa 以及新进发展出来的内生性 sfa 等。
二、理论原理
具体来说,内生性随机边界模型的估计过程通常分为以下几个步骤:
第一步,选择合适的工具变量。工具变量的选择需要满足相关性和外生性两个条件。相关性是指工具变量与内生解释变量相关,外生性是指工具变量与随机误差项和技术无效率项不相关。
第二步,进行第一阶段回归。将内生解释变量对工具变量进行回归,得到内生解释变量的拟合值。
第三步,进行第二阶段回归。将被解释变量对生产函数中的解释变量(包括内生解释变量的拟合值)和随机误差项、技术无效率项进行回归,估计模型参数。
通过以上步骤,可以得到内生性随机边界模型的参数估计值。这些参数估计值可以用于分析生产过程中的技术效率、投入要素的产出弹性等问题,为政策制定和企业决策提供依据。
三、实证模型
四、稳健性检验
为了检验模型的稳健性,可以进行以下几种方法:
- 改变工具变量的选择:尝试不同的工具变量组合,观察模型估计结果的变化。如果不同工具变量得到的结果较为一致,说明模型具有一定的稳健性。
- 改变估计方法:使用不同的估计方法,如两阶段最小二乘法(2SLS)和广义矩估计(GMM),比较估计结果的差异。如果两种方法得到的结果相近,说明模型较为稳健。
- 增加控制变量:加入更多的控制变量,如企业规模、行业特征等,观察模型估计结果的稳定性。如果加入控制变量后,主要解释变量的系数和显著性变化不大,说明模型具有稳健性。
- 分样本估计:将样本分为不同的子样本,如不同行业、不同地区等,分别进行估计,比较不同子样本之间的结果差异。如果不同子样本的结果具有相似的趋势,说明模型较为稳健。
五、程序代码及解释
以下是使用 Stata 进行内生性随机边界模型估计的程序代码及解释:
- 导入数据
use "data.dta", clear
这行代码用于导入数据集 “data.dta”,并清除当前内存中的数据。
- 描述性统计
summarize y K L T z
这行代码用于对被解释变量、解释变量、、和工具变量进行描述性统计,包括均值、标准差、最小值和最大值等。
- 对数变换
gen lny = log(y)
gen lnk = log(K)
gen lnl = log(L)
gen lnt = log(T)
这部分代码对变量进行对数变换,使得模型线性化。
- 相关性检验
pwcorr lnt z
这行代码用于计算技术水平的对数()与工具变量之间的相关性。
- 第一阶段回归
reg lnt z
predict tlhat, xb
这部分代码进行第一阶段回归,将技术水平的对数()对工具变量进行回归,并得到技术水平的拟合值(存储在变量tlhat
中)。
- 设定内生性随机边界模型
srfm lny lnk lnl tlhat, frontier(truncnormal) ineff(m = z*delta)
这行代码用于设定内生性随机边界模型。其中,“lny lnk lnl tlhat” 是被解释变量和解释变量,“frontier (truncnormal)” 表示技术无效率项服从截断正态分布,“ineff (m = z*delta)表示技术无效率项的均值函数为工具变量z与参数向量\delta$ 的乘积。
- 估计模型参数
estimates store model1
这行代码用于估计模型参数,并将结果存储在 “model1” 中。
- 输出估计结果
estimates table model1
这行代码用于输出模型估计结果的表格形式。
- 稳健性检验
(1)改变工具变量的选择
// 使用新的工具变量 new_z
srfm lny lnk lnl tlhat, frontier(truncnormal) ineff(m = new_z*delta)
estimates store model2
estimates table model1 model2
这部分代码首先使用新的工具变量 “new_z” 重新估计内生性随机边界模型,并将结果存储在 “model2” 中。然后,使用 “estimates table” 命令输出两个模型的估计结果比较。
(2)改变估计方法(使用广义矩估计 GMM)
srfm lny lnk lnl tlhat, frontier(truncnormal) ineff(m = z*delta) method(gmm)
estimates store model3
estimates table model1 model3
这部分代码使用广义矩估计(GMM)方法重新估计内生性随机边界模型,并将结果存储在 “model3” 中。然后,输出两个模型的估计结果比较。
(3)增加控制变量(假设控制变量为 control_var)
srfm lny lnk lnl tlhat control_var, frontier(truncnormal) ineff(m = z*delta)
estimates store model4
estimates table model1 model4
这部分代码在模型中加入控制变量 “control_var”,重新估计内生性随机边界模型,并将结果存储在 “model4” 中。然后,输出两个模型的估计结果比较。
(4)分样本估计
// 将样本分为两组
split sample, gen(group)
// 对第一组样本进行估计
srfm lny lnk lnl tlhat if group == 1, frontier(truncnormal) ineff(m = z*delta)
estimates store model5
// 对第二组样本进行估计
srfm lny lnk lnl tlhat if group == 2, frontier(truncnormal) ineff(m = z*delta)
estimates store model6
estimates table model1 model5 model6
这部分代码首先将样本分为两组,使用 “split sample, gen (group)” 命令生成一个新的变量 “group”。然后,分别对两个子样本进行内生性随机边界模型估计,并将结果存储在 “model5” 和 “model6” 中。最后,输出三个模型的估计结果比较
Stata:内生性随机边界模型-xtsfkk (qq.com)https://mp.weixin.qq.com/s?__biz=Mzk0MDI1NTgyOQ==&mid=2247559291&idx=1&sn=cd15b036d553f983e70c3ef223a8f27a&chksm=c2e7d741f5905e573bd285d42c6765c2199918a57c677c0d429f1c0191b96b45b79fa868c57a#rd