Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:康瑜欣 (贵州财经大学)
邮箱:kang_haisenky@163.com
编者按:本文主要摘译自下文,特此致谢!
Source:Young, A., 2022, Nearly collinear robust procedures for 2sls estimation, working paper. -PDF-
目录
在 Stata 的应用过程中,研究者常常依赖程序对变量间的共线性进行筛选与剔除。但 Stata 程序在进行共线性识别时存在所谓“识别范围”,即有可能存在一些程序看来“不足为虑”的共线性问题,但却足以影响到参数估计的精确性。
当变量间存在高度共线性时,参数估计程序中矩阵运算的浮点数进位差会被放大,造成参数估计结果对一些与实际经济无关的因素敏感 (比如变量顺序或数据顺序)。这一情况在两阶段最小二乘法 (2SLS) 的估计中更为明显,因为 Stata 相关程序进行运算时,并没有严格地假设矩阵逆运算之后与原矩阵的内积为精确的单位阵。
据此,本推文介绍了 Young (2022) 所提出的,适用于高度共线性下的稳健 2SLS 估计方法,以及其在 Stata 内的实现代码与过程。
工具变量估计方法通常规范地通过两阶段最小二乘法进行表示:
其中
当矩阵
对于经典 2SLS 估计方法中出现的误差,Young (2022) 通过下面的思路提出了分组运行 2SLS 的改进方式。
实际上,在经典 2SLS 估计方法中,很多矩阵计算操作都可以转化为求解
另一种改进计算进度的思路则是通过改进矩阵的“条件数”。在矩阵代数中,矩阵
如果将工具变量矩阵
基于上述改进思路,Young (2022) 编写的 pariv
命令可以运行分组的 2SLS 估计,并且可以报告参数估计值对数据与变量顺序的敏感程度。具体的命令细节如下:
命令安装:
ssc install pariv, replace
命令语法:
pariv depvar (endovars = excludedlist) [includedinst] ///
[if] [in] [weight] [,options]
其中,
depvar
:被解释变量endovars
:内生变量excludedinst
:工具变量includedinst
:外生控制变量pariv
可以分组地拟合被解释变量对内生变量的 2SLS,并且使用 excludedinst
作为 endovars
的工具变量。在参数估计之后,pariv
将会报告目标参数和标准差在各种分组、变量顺序、数据顺序等条件下的最大、最小值。下面的代码实例将会展示常用的 2SLS 估计方法 ivregress
得到的估计值对变量输入顺序的敏感性,以及 pariv
命令下得到的估计值在高度共线性下的稳健性。
接下来,使用模拟方法生成数据,可以看到被解释变量 y 的生成过程涉及解释变量 t,两者关系的估计参数应为 1,且 y 和 t 同时与变量 u 相关,如果在后续的模型拟合中,变量 u 不出现在方程中,则存在内生性问题。
. drop _all
. set seed 836
. quietly set obs 16
. gen double age = _n + 19
. gen double age2 = age^2
. gen double age3 = age^3
. gen double age4 = age^4
. gen double u = invnormal(uniform())
. gen double e = invnormal(uniform())
. gen double z = invnormal(uniform())
. gen double t = 10*z + u
. gen double y = t + u + e
变量 age、age2、age3、age4 则是与 y 生成过程无关的外生控制变量,并且之间存在高度的共线性,有可能对参数的估计精度造成影响。
. ivregress 2sls y (t = z) age age2 age3 age4, robust
Instrumental variables 2SLS regression Number of obs = 16
Wald chi2(5) = 2790.55
Prob > chi2 = 0.0000
R-squared = 0.9893
Root MSE = 1.0438
------------------------------------------------------------------------------
| Robust
y | Coefficient std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
t | 0.926 0.055 16.72 0.000 0.817 1.034
age | -264.610 142.618 -1.86 0.064 -544.136 14.916
age2 | 14.514 7.842 1.85 0.064 -0.856 29.883
age3 | -0.350 0.189 -1.85 0.064 -0.721 0.021
age4 | 0.003 0.002 1.85 0.064 -0.000 0.006
_cons | 1788.965 960.297 1.86 0.062 -93.182 3671.112
------------------------------------------------------------------------------
Instrumented: t
Instruments: age age2 age3 age4 z
. ivregress 2sls y (t = z) age4 age age2 age3, robust
Instrumental variables 2SLS regression Number of obs = 16
Wald chi2(5) = 1111.02
Prob > chi2 = 0.0000
R-squared = 0.9747
Root MSE = 1.609
------------------------------------------------------------------------------
| Robust
y | Coefficient std. err. z P>|z| [95% conf. interval]
-------------+----------------------------------------------------------------
t | 0.744 0.298 2.49 0.013 0.159 1.328
age4 | 0.010 0.010 0.93 0.355 -0.011 0.030
age | -795.169 850.303 -0.94 0.350 -2461.732 871.393
age2 | 43.945 47.182 0.93 0.352 -48.531 136.421
age3 | -1.067 1.150 -0.93 0.353 -3.320 1.186
_cons | 5332.821 5677.235 0.94 0.348 -5794.355 16459.998
------------------------------------------------------------------------------
Instrumented: t
Instruments: age4 age age2 age3 z
以上结果是使用 Stata 中 ivregress
命令进行 2SLS 估计得到的。两次拟合中交换了控制变量组 (age、age2、age3、age4) 的顺序。不难看出,两次拟合结果中,变量 ivregress
在变量间存在高度共线性的情况下容易产生估计误差。然后,再使用 pariv
命令进行 2SLS 估计。
. pariv y (t = z) age4 age age2 age3, robust reps(100)
Partitioned (collinear robust) 2SLS Number of obs = 16
Estimates Statistical Significance
coefficient std. err. |z| P>|z| [95% conf. interval]
-------------+-----------------------------------------------------------------
t | .9395758 .04805926 19.55 0.000 .8453814 1.03377
age4 | .00263474 .00141279 1.86 0.062 -.00013428 .00540376
age | -223.5808 119.8144 1.87 0.062 -458.4128 11.25114
age2 | 12.23788 6.572025 1.86 0.063 -.6430484 25.11881
age3 | -.2946544 .1582678 1.86 0.063 -.6048536 .01554485
_cons | 1514.899 808.6364 1.87 0.061 -69.99973 3099.797
-------------------------------------------------------------------------------
Range in 100 Permutations of Data and Variable Order
coefficients standard errors
min max min max
-------------+----------------------------------------------
t | .9395758 .9395758 .04805926 .04805926
age4 | .00263474 .00263474 .00141279 .00141279
age | -223.5808 -223.5808 119.8144 119.8144
age2 | 12.23788 12.23788 6.572025 6.572025
age3 | -.2946544 -.2946544 .1582678 .1582678
_cons | 1514.899 1514.899 808.6364 808.6364
-----------------------------------------------------------
Instrumented: t
Excluded instruments: z
Included instruments: age4 age age2 age3 _cons
Heteroskedasticity robust standard errors
Maximum R2 found in the regression of any one instrument on the others: .99999998
可以看出,变量 t 的系数估计值为 0.939,接近真实估计值 1。更为重要的是,在 100 次随机选择变量顺序与数据顺序的估计结果中,各参数估计值的最大最小值在小数点后七位均保持相同。这一结果表明,pariv
命令保证了参数估计值在高度共线性下 2SLS 估计的参数是稳健的。
Note:产生如下推文列表的 Stata 命令为:
lianxh 工具变量, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
和songbl
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh