温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装命令如下:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
⛳ Stata 系列推文:
江 鑫 (安徽大学),jiangxin199566@foxmail.com
曹昊煜 (兰州大学),caohy19@lzu.edu.cn
编者按:本文主要摘译自下文,特此致谢!
Source:Kripfganz S, Kiviet J F. kinkyreg: Instrument-free inference for linear regression models with endogenous regressors[J]. Community (contributed Stata program. Mimeo in preparation, 2020. -PDF-
目录
众所周知,工具变量在解决内生性问题中发挥着重要作用。在具有内生变量的模型中,标准回归方法是通过使用工具变量来利用恰好或过度识别的正交性条件。在恰好识别的模型中,如果不强加其他不可测试的假设,正交性假设就无法识别。虽然对过度识别限制的正式测试是可能的,其解释仍然取决于一组初始的不可测试的恰好识别正交性条件的有效性。
我们编写了 kinkyreg
命令,用于 kinky 最小二乘 (KLS) 推理,该程序采用了另一种识别方法。通过利用内生性可接受程度界限形式的非正交条件,可以构建不需要工具变量的可行测试程序。 KLS 置信区间比从工具变量估计获得的置信区间提供更多信息,尤其是当工具较弱时。此外,该方法有助于标准工具变量推断的敏感性分析。特别是,它允许评估以前无法测试的仅识别排除限制的有效性。进一步,基于 KLS 的检验包括异方差、函数形式和序列相关检验。
考虑如下线性回归模型:
其中,
该模型可以推广到多个内生回归量 (Kiviet, 2020)。OLS 是不一致的,因为
虽然 2SLS 使用正交条件
其中,
KLS 估计修正 OLS 估计的不一致性:
Kiviet (2020) 推导出 KLS 估计量的方差-协方差矩阵
对于
对于显著性水平
*命令安装
cnssc install kinkyreg, replace
*命令语法
kinkyreg depvar [varlist1] (varlist2 [= varlist_iv]) [if] [in] [, options]
varlist1
代表一系列外生变量;varlist2
代表一系列内生变量;varlist_iv
代表一系列排除的工具变量。options
选择项及其含义如下:
模型:
endogeneity(numlist)
:指定内生性相关值;range(#_1 #_2)
:内生变量的准许范围;stepsize(#)
:考虑内生性的处理步骤;ekurtosis(#)
:指定误差项的峰度;xkurtosis(#)
:指定右侧变量的峰度;noconstant
:除去常数项。汇报项:
correlation(#)
:回归输出的特定内生性;level(#)
:设置置信水平,默认值为 95%;small
:进行自由度调整并报告小样本统计量;inference(varlist)
:为 KLS 推断指定变量;lincom(#: exp)
:为 KLS 推断指定线性组合,可以多次指定;twoway(twoway_spec)
:指定双向图的选项,可以多次指定;coefplot(coefplot_spec)
:指定系数图的选项,可以多次指定;ciplot(ciplot_spec)
:指定置信区间图的选项,可以多次指定;namestub(namestub)
:为双向图名称设置前缀;ivperfect
:不检查内生变量和外生工具变量之间的共线性;coeflegend
:显示图例而不是统计数据;nograph
:不绘图;noheader
:不输出标题;notable
:不输出系数表;novstore
:不要为每个网格点存储方差-协方差矩阵,很少使用;display_options
:控制列和列格式、行间距、行宽、省略变量的显示以及基本和空单元格,及因子变量标签。
下面调用数据集,举个栗子,使用 kinkyreg
得出估计系数和置信区间:
. use http://www.stata-press.com/data/imeus/griliches.dta, clear
. set scheme s1color
. kinkyreg lw s expr tenure rns smsa _I* (iq = age mrt), range(-0.75 0.75) small inference(iq s)
可以使用 correlation(#)
轻松获得特定内生相关性的 KLS 回归输出。假设轻度到中度的测量误差是内生性的来源,一个合理的选择可能是
. kinkyreg, correlation(-0.4)
Kinky least squares estimation Number of obs = 758
Postulated endogeneity of iq = -0.4000
------------------------------------------------------------------------------
lw | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
iq | .0178505 .0016046 11.12 0.000 .0147003 .0210006
s | .018874 .0090898 2.08 0.038 .0010293 .0367187
expr | .036647 .0074092 4.95 0.000 .0221016 .0511925
tenure | .0355367 .0085142 4.17 0.000 .0188221 .0522514
rns | -.0527647 .0315098 -1.67 0.094 -.1146233 .0090939
smsa | .1196815 .0301968 3.96 0.000 .0604005 .1789625
_Iyear_67 | -.0638234 .0543385 -1.17 0.241 -.1704981 .0428514
_Iyear_68 | .0872164 .0509777 1.71 0.088 -.0128607 .1872935
_Iyear_69 | .1878763 .0498298 3.77 0.000 .0900528 .2856998
_Iyear_70 | .1661179 .0556755 2.98 0.003 .0568184 .2754174
_Iyear_71 | .1882715 .0490242 3.84 0.000 .0920295 .2845134
_Iyear_73 | .3048592 .04619 6.60 0.000 .2141811 .3955373
_cons | 3.255792 .1420164 22.93 0.000 2.976992 3.534592
------------------------------------------------------------------------------
工具变量的排除性检验:
. estat exclusion, twoway(, ylabel(0.01 0.05 0.1, grid)) notable
估计结果展示如下图:
系数与置信区间估计:
. kinkyreg lw s expr tenure rns smsa _I* age mrt (kww = iq), ///
> range(-0.75 0.75) small inference(kww s)
结果展示如下:
工具变量的排除检验:
. estat exclusion, twoway(, ymtick(0.05 0.1, grid))
Endogeneity of kww compatible with valid exclusion
-----------------------------------------------
| Corr. [95% Confid. Bounds]
-------------+---------------------------------
iq | -.3183786 -.5207143 -.1120693
-----------------------------------------------
交互项的排除检验:
. estat exclusion c.expr#c.expr c.tenure#c.tenure c.age#c.age ///
> c.expr#c.tenure c.expr#c.age c.tenure#c.age, ///
> twoway(, ymtick(0.05 0.1, grid)) nojoint notable
边际效应:tenure 变量边际效应的 KLS 估计为 lincom()
选项生成选定的年龄值。
. kinkyreg lw s expr tenure rns smsa _I* age mrt c.tenure#c.age (kww), ///
> range(-0.75 0.75) small lincom(1: tenure+c.tenure#c.age*20) ///
> lincom(2: tenure+c.tenure#c.age*30) ///
> twoway(, ytitle("marginal effect of tenure") ylabel(-0.15(0.05)0.2) ///
> ytick(0, grid) legend(off)) twoway(1, title("age = 20")) ///
> twoway(2, title("age = 30"))
Kinky least squares estimation Number of obs = 758
结果展示如下:
线性假设检验:原假设是对于更高的年龄,tenure 和 expr 边际效应相等会被拒绝。
. estat test tenure+c.tenure#c.age*20=expr, twoway(, title("age == 20") ///
> ylabel(0(0.2)1) name(kinkyreg_test1))
. estat test tenure+c.tenure#c.age*30=expr, twoway(, title("age == 30") ///
> ymtick(0.05 0.1, grid) name(kinkyreg_test2))
Ramsey 回归规范误差测试 (RESET):RESET 是对内生性校正拟合值 (默认选项 xb
) 或右侧变量 (选项 rhs
) 的排除性检验。
. estat reset, twoway(, ymtick(0.05 0.1, grid) legend(rows(1)) ///
> name(kinkyreg_reset_xb))
. estat reset, rhs order(2 3) twoway(, ymtick(0.05 0.1, grid) ///
> name(kinkyreg_reset_rhs))
结果展示如下:
Breusch-Pagan 异方差检验:原假设是不存在条件异方差性,minp
选项显示单个显著性检验中的最小
. estat hettest () (iq) (c.expr#c.expr c.tenure#c.tenure c.age#c.age ///
> c.expr#c.tenure c.expr#c.age), xb rhs twoway(, ymtick(0.05 0.1, grid) ///
> name(kinkyreg_hett))
. estat hettest () (iq) (c.expr#c.expr c.tenure#c.tenure c.age#c.age ///
> c.expr#c.tenure c.expr#c.age), rhs minp twoway(, ylabel(0(0.2)1) ///
> ymtick(0.05 0.1, grid) name(kinkyreg_hett_minp))
系数估计与置信区间:
. *未限制显示范围:
. kinkyreg lw s expr tenure rns smsa _I* age mrt c.tenure#c.age (iq kww), ///
> endogeneity(-0.2 .) range(-0.75 0.75) small inference(s) ///
> twoway(s,name(kinkyreg_s1))
Kinky least squares estimation Number of obs = 758
. *使用选项 yrange() 限制显示范围:
. kinkyreg lw s expr tenure rns smsa _I* age mrt c.tenure#c.age (iq kww), ///
> endogeneity(-0.2 .) range(-0.75 0.75) small inference(s) ///
> twoway(s, yrange(-0.2 0.2) name(kinkyreg_s2))
Kinky least squares estimation Number of obs = 758
曲面图和等高线图:
set scheme s1mono
forvalues endo = -40/0{
quietly kinkyreg lw s expr tenure rns smsa _I* age mrt c.tenure#c.age ///
(iq kww), endogeneity (`=`endo'/100' .) range(-0.4 0) small nograph
matrix b = (nullmat(b), e(b_kls)[., "s"])
estat test s, nograph
matrix p = (nullmat(p), r(p_kls))
}
frame create kinkyreg
frame change kinkyreg
quietly svmat double b, name(s)
svmat double p, name(p)
generate double endo_kww = -0.4 + 0.01 * (_n - 1)
quietly reshape long s p, i(endo_kww) j(endo_iq)
recast double endo_iq
quietly replace endo_iq = (endo_iq - 41) / 100
label var s "s coefficient estimate"
label var p "p-value"
label var endo_kww "postulated endogeneity of kww"
label var endo_iq "postulated endogeneity of iq"
surface endo_iq endo_kww s, plotregion(lpattern(blank)) ytitle(endog. kww) ///
nodraw name(surface_s)
surface endo_iq endo_kww p, plotregion(lpattern(blank)) ytitle(endog. kww) ///
nodraw name(surface_p)
twoway contour s endo_kww endo_iq, ccuts(-0.06(0.01)0.03) nodraw name(contour_s)
twoway contour p endo_kww endo_iq, ccuts(0.01 0.05 0.1) nodraw name(contour_p)
graph combine surface_s surface_p contour_s contour_p, altshrink
kinkyreg
程序包提供了新工具,用于 (主要是图形) 在具有任意数量内生变量的线性回归模型中进行无工具变量推断。KLS 推理有利于基于工具变量的敏感性检查。KLS 方法通常比基于工具变量的方法产生更窄的置信区间,但仅与可接受的内生相关性的所选界限一样好。因此,将 KLS 视为对基于工具变量法的补充而不是替代更为合理的。
Note:产生如下推文列表的 Stata 命令为:
lianxh 工具变量, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh