Lasso一下:再多的控制变量和工具变量我也不怕
👇 连享会 · 推文导航 | www.lianxh.cn
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 ⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching 🔨 工具:工具软件 | Markdown | Python-R-Stata 🎧 课程:公开课-直播 | 计量专题 | 关于连享会
作者: 徐云娇 (厦门大学)
邮箱: jilyo@stu.xmu.edu.cn
编者按:本文主要摘译自下文,特此致谢!
Source: The Stata Lasso Page -Link-
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
目录
1. 背景介绍
1.1 众多工具变量
1.2 众多控制变量
1.3 众多工具变量与控制变量
2. 命令介绍
2.1 pdslasso 命令
2.2 ivlasso 命令
3. Stata 实例
4. 结语
5. 参考资料
6. 相关推文
1. 背景介绍
在样本量有限的情况下,如果模型中有很多个控制变量,或有很多个工具变量,或者二者兼而有之,我们该如何处理?
本文介绍的 pdslasso
以及 ivlasso
命令适用于包含高维控制变量和工具变量的线性模型。它可以帮助我们选择合适的控制变量 (pdslasso
) 或工具变量 (ivlasso
),避免遗漏变量偏误与模型过拟合问题,从而得到研究者真正感兴趣的因果效应。
1.1 众多工具变量
考虑以下模型:
其中, 是因变量, 是内生解释变量, 是 维度的工具变量。并且, 可能非常大,甚至超过样本个数,因此 也被称为高维向量。对于上式,我们要估计内生变量 对结果变量 的因果效应。
工具变量的选择对于系数 的估计至关重要,但由于事前并不知道如何选择合理的工具变量,当可选择的工具变量过多时,我们往往会显得无所适从。
Belloni 等 (2012) 提出可以用 Lasso 方法为 设置惩罚项,进而选择合适的工具变量来预测 。此外,对于最佳估计式 ,参数 可以是用 Lasso、平方根 Lasso、或 Post-Lasso 估计量。
1.2 众多控制变量
接下去,我们考虑假如 是外生变量,但模型中存在众多控制变量的情况:
在上式中, 是 维度的高维向量。同样地,我们不知道哪些是 “正确的” 控制变量。这又会带来以下两个问题:
选择了过少的控制变量,导致遗漏变量偏差; 选择了过多的控制变量,导致了模型过拟合。
Belloni 等 (2014) 提出可以通过运用两次 Lasso,即 PDS (post-double-selection) 方法来选择控制变量。具体来看:
Step1:以 作为因变量, 作为回归项进行 Lasso 回归; Step2:以 作为因变量, 作为回归项进行 Lasso 回归。Lasso 估计量会得到一个稀疏解 (sparse solution),即很多回归项的系数都为 0。在此基础上,OLS 回归中选择的控制变量包括 Step1 和 Step2 中被选中的变量。
1.3 众多工具变量与控制变量
最后,考虑以下模型:
其中, 和 ,即工具变量与控制变量个数都十分众多。在这种情况下,Chernozhukov 等 (2015) 也介绍了对应的方法,有兴趣的读者可以自行阅读,本文不作过多介绍。
接下来,本文将介绍由 Ahrens 等 (2018) 编写的命令 pdslasso
和 ivlasso
,它们可以帮助我们在 Stata 中快速实现上述过程。
2. 命令介绍
2.1 pdslasso 命令
*命令安装
ssc install pdslasso, replace //同时安装 pdslasso 和 ivlasso
*命令语法
pdslasso depvar regressors (hd_controls) [weight] [if exp] [in range]
[ , partial(varlist) pnotpen(varlist) aset(varlist) post(method)
robust cluster(var) fe noftools rlasso[(name)] sqrt noisily
loptions(options) olsoptions(options) noconstant ]
Note: pdslasso requires rlasso and ivreg2 to be installed.
depvar
:模型的被解释变量;regressors
:模型的解释变量;hd_controls
:控制变量;partial
:lasso 估计中被排除的变量;pnotpen
:lasso 估计中不被惩罚的变量;aset
:post-lasso 估计中始终被保留的变量;post
:可选 pds,lasso 或 plasso;robust
:异方差稳健标准误;cluster
:聚类标准误;bw
:HAC/AC 标准误;kernel
:用于确定 HAC/AC 惩罚项载荷;fe
:固定效应模型 (需要事先设定xtset
);noftools
:很少使用;rlasso
:存储和列示中间估计结果;sqrt
:平方根 lasso;noisily
:列示每一步中间估计结果;loptions(options)
:rlasso
估计的可选项;olsoptions(options)
:OLS 估计的可选项;noconstant
:不要常数项。
2.2 ivlasso 命令
ivlasso depvar regressors [(hd_controls)] (endog=instruments)
[if exp] [in range] [ , partial(varlist) pnotpen(varlist)
aset(varlist) post(method) robust cluster(var) fe noftools
rlasso[(name)] sqrt noisily loptions(options) ivoptions(options)
first idstats sscset ssgamma(real) ssgridmin(real) ssgridmax(real)
ssgridpoints(integer 100) ssgridmat(name) noconstant]
Note: ivlasso also requires ranktest.
ivoptions(options)
:IV 回归的选项;first
:存储和列示 2SLS 的第一阶段估计结果;idstats
:进行 2SLS 的弱工具变量检验;sscset
:计算弱工具变量稳健置信集;ssgamma
:弱工具变量稳健检验的显著性与置信区间;ssgridmin
:网格搜索的最小值;ssgridmax
:网格搜索的最大值;ssgridpoints
:网格搜索的点数;ssgridmat
:网格搜索矩阵的设置。
3. Stata 实例
在这一节中,我们利用 Acemoglu 等 (2001) 关于「殖民起源」的论文数据进行演示。其中,我们感兴趣的是制度 (avexpr) 对收入 (logpgp95) 的影响。
首先,忽略内生性问题进行最简单的 OLS 回归。
. use "https://statalasso.github.io/dta/AJR.dta", clear
. reg logpgp95 avexpr
Source | SS df MS Number of obs = 64
----------+--------------------------------- F(1, 62) = 72.82
Model | 37.0420118 1 37.0420118 Prob > F = 0.0000
Residual | 31.5397067 62 .508704946 R-squared = 0.5401
----------+--------------------------------- Adj R-squared = 0.5327
Total | 68.5817185 63 1.08859871 Root MSE = .71324
--------------------------------------------------------------------------
logpgp95 | Coef. Std. Err. t P>|t| [95% Conf. Interval]
----------+---------------------------------------------------------------
avexpr | 0.522 0.061 8.53 0.000 0.400 0.644
_cons | 4.660 0.409 11.41 0.000 3.844 5.477
--------------------------------------------------------------------------
然后,加入更多的控制变量去缓解遗漏变量的问题。具体地,这里一共使用了 24 个控制变量。虽然听上去并没有很多,但由于观测值只有 64 个,所以我们还是需要对控制变量进行合理地选取。利用 pdslasso
命令进行回归:
. pdslasso logpgp95 avexpr (lat_abst edes1975 avelf temp* humid* steplow-oilres)
Estimation results:
Specification:
Regularization method: lasso
Penalty loadings: homoskedastic
Number of observations: 64
Exogenous (1): avexpr
High-dim controls (24): lat_abst edes1975 avelf temp1 temp2
temp3 temp4 temp5 humid1 humid2 humid3
humid4 steplow deslow stepmid desmid
drystep drywint landlock goldm iron
silv zinc oilres
Selected controls (3): edes1975 avelf zinc
Unpenalized controls (1): _cons
Structural equation:
OLS using CHS lasso-orthogonalized vars
-----------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+------------------------------------------------------
avexpr | 0.419 0.054 7.81 0.000 0.314 0.524
-----------------------------------------------------------------
OLS using CHS post-lasso-orthogonalized vars
-----------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+------------------------------------------------------
avexpr | 0.391 0.057 6.81 0.000 0.279 0.504
-----------------------------------------------------------------
OLS with PDS-selected variables and full regressor set
------------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+-------------------------------------------------------
avexpr | 0.391 0.056 6.97 0.000 0.281 0.501
edes1975 | 0.009 0.003 2.87 0.004 0.003 0.015
avelf | -0.997 0.247 -4.03 0.000 -1.482 -0.513
zinc | -0.008 0.028 -0.28 0.778 -0.063 0.047
_cons | 5.764 0.377 15.27 0.000 5.025 6.504
------------------------------------------------------------------
Standard errors and test statistics valid for the following variables only:
avexpr
------------------------------------------------------------------
这里总共列示了三个不同的估计结果,它们分别是由三个不同的估计方法得到的。
考虑到制度 (avexpr) 存在的内生性问题,Acemoglu 等 (2001) 将欧洲早期殖民者在各殖民地的死亡率 (logem4) 作为制度的工具变量。因此,我们将工具变量和所有控制变量纳入模型回归:
. pdslasso logpgp95 lat_abst edes1975 avelf temp* humid* ///
> steplow-oilres (avexpr=logem4)
Estimation results:
Specification:
Regularization method: lasso
Penalty loadings: homoskedastic
Number of observations: 64
Exogenous (24): lat_abst edes1975 avelf temp1 temp2
temp3 temp4 temp5 humid1 humid2 humid3
humid4 steplow deslow stepmid desmid
drystep drywint landlock goldm iron
silv zinc oilres
Endogenous (1): avexpr
Unpenalized controls (1): _cons
High-dim instruments (1): logem4
Selected instruments (1): logem4
Structural equation:
IV using CHS lasso-orthogonalized vars
------------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+-------------------------------------------------------
avexpr | 1.174 0.317 3.71 0.000 0.554 1.795
lat_abst | -3.522 2.234 -1.58 0.115 -7.901 0.856
edes1975 | -0.004 0.009 -0.44 0.658 -0.021 0.013
avelf | -2.058 0.625 -3.29 0.001 -3.284 -0.832
temp1 | -0.053 0.205 -0.26 0.797 -0.454 0.349
temp2 | -0.072 0.066 -1.10 0.271 -0.201 0.056
temp3 | 0.079 0.085 0.93 0.355 -0.088 0.245
temp4 | 0.039 0.090 0.43 0.666 -0.137 0.214
temp5 | 0.004 0.046 0.09 0.931 -0.087 0.095
humid1 | -0.025 0.030 -0.84 0.399 -0.083 0.033
humid2 | 0.046 0.042 1.09 0.275 -0.036 0.128
humid3 | 0.032 0.028 1.14 0.255 -0.023 0.086
humid4 | -0.029 0.033 -0.87 0.383 -0.094 0.036
steplow | -0.267 0.314 -0.85 0.395 -0.883 0.349
deslow | 0.636 0.442 1.44 0.150 -0.230 1.502
stepmid | 0.259 0.859 0.30 0.764 -1.426 1.943
desmid | 1.912 1.211 1.58 0.114 -0.461 4.285
drystep | 0.729 0.566 1.29 0.198 -0.380 1.838
drywint | 6.507 8.563 0.76 0.447 -10.277 23.290
landlock | 1.168 0.688 1.70 0.089 -0.180 2.516
goldm | -0.083 0.179 -0.46 0.643 -0.434 0.268
iron | -0.258 0.148 -1.74 0.082 -0.549 0.032
silv | -0.048 0.101 -0.48 0.633 -0.247 0.150
zinc | 0.173 0.182 0.95 0.341 -0.183 0.529
oilres | -0.000 0.000 -0.47 0.636 -0.000 0.000
------------------------------------------------------------------
IV using CHS post-lasso-orthogonalized vars
------------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+-------------------------------------------------------
avexpr | 1.066 0.249 4.28 0.000 0.577 1.554
lat_abst | -3.199 1.962 -1.63 0.103 -7.045 0.647
edes1975 | -0.002 0.007 -0.31 0.759 -0.017 0.012
avelf | -1.955 0.546 -3.58 0.000 -3.024 -0.885
temp1 | -0.022 0.180 -0.12 0.903 -0.374 0.330
temp2 | -0.069 0.059 -1.17 0.243 -0.184 0.047
temp3 | 0.066 0.075 0.89 0.374 -0.080 0.213
temp4 | 0.023 0.078 0.30 0.765 -0.130 0.176
temp5 | 0.002 0.042 0.05 0.962 -0.079 0.083
humid1 | -0.023 0.026 -0.89 0.375 -0.075 0.028
humid2 | 0.048 0.037 1.27 0.204 -0.026 0.121
humid3 | 0.032 0.025 1.26 0.206 -0.017 0.081
humid4 | -0.027 0.030 -0.92 0.358 -0.086 0.031
steplow | -0.280 0.281 -1.00 0.319 -0.832 0.271
deslow | 0.624 0.396 1.58 0.115 -0.152 1.400
stepmid | 0.264 0.771 0.34 0.732 -1.247 1.774
desmid | 1.714 1.057 1.62 0.105 -0.358 3.787
drystep | 0.615 0.487 1.26 0.207 -0.339 1.570
drywint | 5.099 7.474 0.68 0.495 -9.551 19.748
landlock | 1.016 0.586 1.73 0.083 -0.134 2.165
goldm | -0.056 0.157 -0.36 0.722 -0.364 0.252
iron | -0.232 0.129 -1.80 0.072 -0.485 0.021
silv | -0.041 0.090 -0.46 0.648 -0.218 0.136
zinc | 0.149 0.160 0.93 0.352 -0.165 0.464
oilres | -0.000 0.000 -0.38 0.701 -0.000 0.000
------------------------------------------------------------------
IV with PDS-selected variables and full regressor set
------------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+-------------------------------------------------------
avexpr | 0.713 0.165 4.32 0.000 0.389 1.036
lat_abst | -2.520 1.259 -2.00 0.045 -4.987 -0.053
edes1975 | 0.003 0.005 0.54 0.587 -0.007 0.012
avelf | -1.606 0.356 -4.51 0.000 -2.304 -0.908
temp1 | 0.103 0.119 0.87 0.387 -0.130 0.336
temp2 | -0.069 0.038 -1.82 0.069 -0.144 0.005
temp3 | -0.006 0.052 -0.11 0.915 -0.108 0.097
temp4 | -0.031 0.051 -0.61 0.540 -0.132 0.069
temp5 | -0.007 0.027 -0.25 0.804 -0.060 0.046
humid1 | -0.008 0.018 -0.47 0.637 -0.043 0.027
humid2 | 0.020 0.027 0.75 0.454 -0.033 0.073
humid3 | 0.022 0.017 1.31 0.190 -0.011 0.055
humid4 | -0.020 0.019 -1.05 0.292 -0.058 0.018
steplow | -0.301 0.182 -1.65 0.099 -0.658 0.056
deslow | 0.497 0.260 1.91 0.056 -0.013 1.007
stepmid | 0.254 0.500 0.51 0.611 -0.725 1.233
desmid | 1.358 0.675 2.01 0.044 0.035 2.681
drystep | 0.325 0.311 1.05 0.296 -0.285 0.936
drywint | 2.879 4.767 0.60 0.546 -6.465 12.223
landlock | 0.734 0.369 1.99 0.047 0.011 1.457
goldm | -0.013 0.100 -0.13 0.899 -0.209 0.184
iron | -0.147 0.084 -1.76 0.079 -0.312 0.017
silv | -0.032 0.058 -0.55 0.581 -0.147 0.082
zinc | 0.103 0.103 1.00 0.319 -0.099 0.305
oilres | 0.000 0.000 0.03 0.976 -0.000 0.000
_cons | 3.686 1.482 2.49 0.013 0.782 6.590
------------------------------------------------------------------
Standard errors and test statistics valid for the following variables only:
avexpr lat_abst edes1975 avelf temp1 temp2 temp3 temp4 temp5 humid1 humid2
humid3 humid4 steplow deslow stepmid desmid drystep
drywint landlock goldm iron silv zinc oilres
------------------------------------------------------------------
纳入全部的控制变量显然过多了,所以我们利用 ivlasso
命令来选取部分的控制变量进行估计:
. ivlasso logpgp95 ///
(lat_abst edes1975 avelf temp* humid* steplow-oilres) ///
(avexpr=logem4)
Estimation results:
Specification:
Regularization method: lasso
Penalty loadings: homoskedastic
Number of observations: 64
Endogenous (1): avexpr
High-dim controls (24): lat_abst edes1975 avelf temp1 temp2
temp3 temp4 temp5 humid1 humid2 humid3
humid4 steplow deslow stepmid desmid
drystep drywint landlock goldm iron
silv zinc oilres
Selected controls, PDS (3): edes1975 avelf zinc
Selected controls, CHS-L (7): edes1975 avelf temp2 humid2 drystep iron zinc
Selected controls, CHS-PL (7): edes1975 avelf temp2 humid2 drystep iron zinc
Unpenalized controls (1): _cons
High-dim instruments (1): logem4
Selected instruments (1): logem4
Structural equation:
IV using CHS lasso-orthogonalized vars
-----------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+------------------------------------------------------
avexpr | 0.779 0.159 4.90 0.000 0.467 1.090
-----------------------------------------------------------------
IV using CHS post-lasso-orthogonalized vars
-----------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+------------------------------------------------------
avexpr | 1.063 0.351 3.03 0.002 0.375 1.750
-----------------------------------------------------------------
IV with PDS-selected variables and full regressor set
------------------------------------------------------------------
logpgp95 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------+-------------------------------------------------------
avexpr | 0.841 0.249 3.38 0.001 0.354 1.329
edes1975 | 0.002 0.006 0.34 0.733 -0.009 0.013
avelf | -0.878 0.356 -2.47 0.014 -1.575 -0.181
zinc | -0.074 0.053 -1.40 0.160 -0.177 0.029
_cons | 2.976 1.555 1.91 0.056 -0.072 6.024
------------------------------------------------------------------
Standard errors and test statistics valid for the following variables only:
avexpr
------------------------------------------------------------------
4. 结语
本文介绍的 pdslasso
以及 ivlasso
命令适用于包含高维控制变量和工具变量的线性模型。它可以帮助我们选择合适的控制变量 (pdslasso
) 或工具变量 (ivlasso
),避免遗漏变量偏误与模型过拟合问题,从而得到研究者真正感兴趣的因果效应。
5. 参考资料
Acemoglu D, Johnson S, Robinson J A, et al. 2001. The Colonial Origins of Comparative Development: An Empirical Investigation. The American Economic Review 91(5):1369-1401. -PDF- Ahrens, A., Hansen, C.B., Schaffer, M.E. 2018. pdslasso and ivlasso: Programs for post-selection and post-regularization OLS or IV estimation and inference. -Link- Belloni, A., Chen, D., Chernozhukov, V. and Hansen, C. 2012. Sparse models and methods for optimal instruments with an application to eminent domain. Econometrica 80(6):2369-2429. -PDF- Belloni, A., Chernozhukov, V. and Hansen, C. 2014. Inference on treatment effects after selection among high-dimensional controls. Review of Economic Studies 81:608-650. -PDF- Chernozhukov, V. Hansen, C., and Spindler, M. 2015. Post-selection and post-regularization inference in linear models with many controls and instruments. American Economic Review: Papers & Proceedings 105(5):486-490. -PDF-
6. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh lianxh lasso 高维 筛选, m
安装最新版lianxh
命令:
ssc install lianxh, replace
专题:Stata命令 vgets:VAR模型设定和筛选-T240 Stata新命令-pdslasso:众多控制变量和工具变量如何挑选? 专题:回归分析 combinatorics:模型设定之自动筛选变量 gsreg:自动模型设定和变量筛选 Stata:拉索回归和岭回归-(Ridge,-Lasso)-简介 Stata Blogs - An introduction to the lasso in Stata (拉索回归简介) 专题:面板数据 引力模型-高维固定效应面板泊松模型 ocmt:高维固定效应模型的变量筛选问题 专题:PSM-Matching Stata:psestimate-倾向得分匹配(PSM)中协变量的筛选 Stata:psestimate-倾向得分匹配(PSM)中匹配变量的筛选 专题:机器学习 Lasso:拉索中如何做统计推断 Stata:拉索开心读懂-Lasso入门
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。