查看原文
其他

前沿: Lasso, 岭回归, 弹性网估计在软件中的实现流程和示例解读

计量经济圈 计量经济圈 2021-10-23

凡是搞计量经济的,都关注这个号了

稿件:econometrics666@126.com

所有计量经济圈方法论丛的code程序, 宏微观数据库和各种软件都放在社群里.欢迎到计量经济圈社群交流访问.

关于机器学习在计量分析中的应用,各位学者可以参阅如下文章:1.Python中的计量回归模块及所有模块概览2.空间计量软件代码资源集锦(Matlab/R/Python/SAS/Stata), 不再因空间效应而感到孤独3.回归、分类与聚类:三大方向剖解机器学习算法的优缺点(附Python和R实现)4.机器学习第一书, 数据挖掘, 推理和预测5.从线性回归到机器学习, 一张图帮你文献综述6.11种与机器学习相关的多元变量分析方法汇总7.机器学习和大数据计量经济学, 你必须阅读一下这篇8.机器学习与Econometrics的书籍推荐, 值得拥有的经典9.机器学习在微观计量的应用最新趋势: 大数据和因果推断10.机器学习在微观计量的应用最新趋势: 回归模型11.机器学习对计量经济学的影响, AEA年会独家报道12.机器学习,可异于数理统计13.Python, Stata, R软件史上最全快捷键合辑!,14.Python与Stata, R, SAS, SQL在数据处理上的比较, 含code及细致讲解15.Python做因果推断的方法示例, 解读与code16.文本分析的步骤, 工具, 途径和可视化如何做?17.文本大数据分析在经济学和金融学中的应用, 最全文献综述18.文本函数和正则表达式, 文本分析事无巨细

前面,我们引荐了机器学习方法出现在AER, JPE, QJE等顶刊上了!”,前沿: 机器学习在金融和能源经济领域的应用分类总结,在学术同行间引起巨大反响。机器学习方法逐渐在经济管理等社科类顶刊,如AER,JPE,QJE,JOF等期刊上出现了。为了进一步了解机器学习在国外最新应用动向,我们为各位学者奉上“Lasso, 岭回归, 弹性网估计在软件中的实现流程和示例解读”。对于这些概念还不甚了解的学者,请参看2-3年前引荐的如下几篇文章:1.回归方法深度剖析(OLS, RIDGE, ENET, LASSO, SCAD, MCP, QR)2.高维回归方法: Ridge, Lasso, Elastic Net用了吗3.共线性、过度/不能识别问题的Solutions4.Lasso回归操作指南, 数据, 程序和解读都有5.七种常用回归技术,如何正确选择回归模型?6.计量经济学新进展,供参考7.计量经济学与实验经济学的若干新近发展及展望8.Stata16新增功能有哪些? 满满干货拿走不谢9.Stata16版本可以下载使用了!10.Stata16 cheat sheet与最全的Stata学习材料对机器学习方法感兴趣的学者,建议认真研读我们附上的参考文献,也可以到社群交流访问。
必看: 计量经济圈公众号搜索功能及操作流程演示 (戳前面)

正文

关于下方文字内容,作者:权一章,兰州大学管理学院,通信邮箱:quanyzh@qq.com
lasso估计由于其低数据要求使其广泛应用于预测领域,其筛选变量的特性也可在降低模型复杂度、避免过度拟合方面一展身手,但其“有偏”的估计却常遭到经济学家的诟病。
近年来,有研究者发现可以使用lasso首先对变量进行“筛选”,接下来采用普通OLS估计可以提高预测的准确性。本文从lasso最基本的概念出发,借助美国检查人员预测餐厅健康得分的例子对比了CV(交叉验证,cross-validation)下的lassoplug-in(插入)法下的lasso、自适应下的lasso以及普通OLS之间的预测精准性。
文章的后半部分比较了“岭回归”(ridge regression)、“lasso”和“弹性网”(the elastic net)的预测情况,附录部分提供了K折交叉验证(k-fold cross-validation)的步骤。
1.有趣的套索估计套索算法least absolute shrinkage and selection operator, 简称lasso可以估计模型系数,这些估计可用于选择模型中应包含哪些协变量。基于此点,套索算法便可用于结果变量的预测和参数的因果推断。在本文中,我们将介绍lasso,并使用lasso进行预测。
当许多潜在协变量中只有少数影响估计结果时lasso最有用,毕竟只包括对结果产生影响的协变量显得重要。“少”和“多”是相对于样本量定义的。在下面的例子中,我们观察了600家餐厅的最新健康检查评分,并且有100个可能会影响每个评分的协变量。之所以有太多潜在的协变量是因为我们无法从600个观测值中可靠地估计100个系数。我们认为只有大约10个协变量很重要,并且相对于600个观察值,我们认为10个协变量是“少数”(少数起着关键作用的协变量)。
鉴于许多协变量中只有少数会影响结果,所以问题的关键是我们不知道哪些协变量很重要,哪些不重要。鉴于此,lasso所估计的系数可以解决该协变量的选择问题。
对于下文中的示例有一些专业术语。相对于能从可用样本量中可靠地估计其系数的模型,那些有更多协变量的模型被称为高维模型(high-dimensional model)。真实模型中非零系数的数量相对于样本量更小的假设称为稀疏假设(sparsity assumption)。更真实地,近似稀疏性假设规定模型中最接近真实世界的非零系数数量相对于样本量要小。
总的来说,套索算法在估计高维近似稀疏模型中的系数时最有用。
高维模型在预测和使用灵活方程形式的模型中几乎无处不在。在许多情况下,许多潜在的协变量是根据多项式(polynomials),样条曲线(splines)或原始协变量的其他函数创建的。然而在特殊情况下,许多潜在的协变量来自行政数据、社交媒体或或自然产生大量潜在协变量的其他来源。
2. 预测餐厅检查分数
我们使用一系列例子来使得我们对套索算法的讨论更容易进行。这些例子使用来自以下问题的一些模拟数据。美国小城市的检查人员希望使用社交媒体评论来预测餐厅的健康检查得分。检验员计划根据我们的预测,对预测的健康评分最低的餐馆进行突击检查。
hsafety2.dta文件中对600家餐厅中的每家都有1个观察点,而最近一次检查的得分情况都在得分一栏当中。社交媒体对餐馆的评论中包含“肮脏”等字眼的百分比可以预测检查得分。我们确定了50个单词,30个单词组和20个短语,它们在检查前三个月撰写的评论中的出现百分比可以预测检查得分。这50个单词的出现百分比在word1-word50中。30个单词对的出现百分比在wpair1 – wpair30中。这20个词组的出现百分比在word group1 –word group20中。
研究人员广泛地使用以下步骤来找到最佳的预测变量。
(1)将样本分为训练和验证子样本。
(2)使用训练数据来估计每个竞争性估计器的模型参数。
(3)使用验证数据来估计每个竞争性估计器产生的预测的样本外均方误差(out-of-sample mean squared error,MSE)。
(4)最佳预测器是产生最小样本外均方误差的估计器。
我们通常将普通最小二乘(OLS)估计作为基准估计。下面我们从拆分样本和计算OLS开始。
在下面的内容中,我们首先将数据读取到内存中,并使用带有split(.75 .25)选项的splitsample命令来生成变量样本,对于其中75%的样本,此变量为1;而对于其余25%的样本,此变量为2。样本中每个观察值随机分配给1或2是,rseed选项使随机分配可重复。

通过生成的样本单向列表(one-way tabulation)可以验证样本是否满足75%–25%的划分要求。
接下来,我们使用训练样本中的数据计算OLS估计值,并将结果以ols的形式存储。

我们使用带有选项over(sample)lassogof来计算MSE的样本内(训练)和样本外(验证)估计。

不出所料,训练子样本中的MSE比验证样本中的小。MSE的样本外估计是预测误差的更可靠估计(可参见Hastie,Tibshirani和Friedman(2009)的第1、2和3章)。
在本文中,我们将介绍套索算法并将其估计的样本外MSE与OLS生成的进行比较。
3.什么是套索估计
首先,lasso是一个模型中系数的估计量。套索估计之所以与众不同,是因为模型中某些系数估算值恰好为零,而其他系数估算值则并非为零。套索通过排除估计系数为零的协变量来精炼协变量。值得注意的是,套索估计没有标准误。从本质上说,套索估计作为协变量选择的方法使其成为一种非标准估计量,并消去了对标准误的估计。在本文中,我们讨论如何将套索估计用于推断问题。
Tibshirani(1996)发明了套索估计,而Hastie、Tibshirani和Wainwright(2015)提供了教科书来介绍它。
本节的其余部分提供了有关套索估计如何产生其系数估计值机制的一些详细信息。套索估计有线性和非线性模型的不同版本。Stata16中提供了用于linear(线性)模型,logistic模型和Poisson模型的估计。这里我们仅讨论线性模型的套索估计,但我们将要推广到非线性模型的套索估计。
如同许多估计方法一样,线性模型的套索估计是通过解决一个优化问题实现的。具体地,线性套索算法的点估计由下式给出:

参数𝜆和被称为“调整”参数(tuning parameters)。二者指定了惩罚项的权重。当𝜆=0时,线性套索变为OLS估计量。不难看出,随着𝜆的增加,所有估计系数的大小都“缩小”到零。之所以会出现这种缩小,是因为惩罚项会随着的𝜆 增加而增加,使得每个非零 的载荷也变大。惩罚项包括了每个的绝对值。更多详细信息,请参见Hastie,Tibshirani和Wainwright(2015)的2.2节。
在上式中,我们可以发现:存在一个值,对所有的估计系数都恰好为零。当𝜆从𝜆max减小时,非零系数估计的数量开始增加。对于𝜆∈(0,),一些估计系数恰好为零,而有些则不为零。当我们使用套索估计进行协变量选择时,估计系数为零的协变量将被排除,而估计系数非零的协变量将被包括在内。
套索估计中“允许潜在协变量𝑝的数量可以远大于样本数量n”是其一大优势。但重要的是,稀疏近似假设要求模型中的协变量数量相对于n要更小。
4. 调整参数
在将lasso用于预测或模型选择之前,必须选择调整参数。用于选择调整参数的最常用方法是交叉验证(CV)、自适应套索(adaptive lasso)和插件方法(plug-in methods)。当然,我们有时也会手动设置𝜆。
CV找到使预测的样本外MSE最小化的𝜆。CV使用拆分样本来模拟过程,以找到最佳的样本外预测变量,这些细节在附录中给出。
CV是在lasso命令中选择调整参数的默认方法。在下面的结果中,我们使用训练样本,利用套索来估计模型中得分的系数。我们指定了rseed()选项,以使CV结果可再现化。

我们指定了nolog选项来抑制CV超过𝜆的候选值。输出结果显示CV选择了一个𝜆,其中100个协变量中的25个具有非零系数。我们将这些结果以cv的名称存储。
接下来,我们使用cvplot绘制CV函数。

CV函数在最佳𝜆附近显得有些平坦,这意味着𝜆附近的值会产生类似的样本外MSE。
包含协变量的数量可以在CV函数的平坦部分上发生很大变化。我们可以使用套索结表(lasso knot table)来探明所选协变量数量的变化。在套索估计的术语中,结是𝜆的值,对于该值,将协变量添加或减去到具有非零值的协变量集合中。我们使用lassoknots命令显示该表。

CV函数在ID=26的 𝜆处实现最小化,套索估计显示在此处包含25个协变量。CV函数的平坦部分包括ID∈{21,22,23,24,26,27}的𝜆个值。不难发现,这里仅使用ID = 21处的 𝜆来包含14个协变量。关于此点,我们将在下面的敏感性分析(sensitivity analysis)中进一步探索。
CV倾向于在最近似于生成数据的过程模型中包括系数为零的额外协变量。这可能会影响基于CV的套索估计预测性,也可能影响基于CV的套索估计在进行模型选择时的推断性。自适应lasso是CV的多步版本,可以排除模型中一些额外的协变量。
自适应lasso的第一步是执行CV。第二步是在第一步所选择的协变量中执行CV。在第二步中,惩罚项载荷为𝜔𝑗 = 1 / | 𝜷ˆ𝑗 |,其中𝜷ˆ𝑗是来自第一步的惩罚估计。这使得具有较小载荷系数的协变量更有可能在第二步中被排除。有关自适应lasso以及基于CV的套索过度选择的趋势,请参见Zou(2006)以及Bühlmann和Van de Geer(2011)。另请参阅Chetverikov,Liao和Chernozhukov(2019),以获得CV的正式结果和可以解释过度选择趋势的思路。我们在下面指定选项selection(自适应),以使套索使用自适应套索而不是CV来调整参数。我们将结果存储在adaptive的名称下。

我们看到自适应套索包含了12个而不是25个协变量。
插件方法往往比自适应lasso更加简化。插件方法可以找到𝜆的值,该值大到足以控制估计噪声(estimation noise)。插件方法选择𝜔𝑗以针对每个参数标准化(未经惩罚的)拟合度量的得分。给定标准化得分,插件方法选择一个𝜆值,该值大于最大标准化得分,且概率接近1。
基于插件的lasso比基于CV的lasso和自适应lasso要快得多。在实践中,基于插件的套索估计倾向于包含重要的协变量,并且插件估计非常适合排除那些不能逼近数据模型的协变量。但是基于插件的套索估计可能会丢失一些系数较大的协变量,只会找到系数较小的一些协变量。参见Belloni,Chernozhukov和Wei(2016)和Belloni等(2012)以了解详细信息和正式结果。
我们在下面指定选项selection(插件),以使套索使用插件方法选择调整参数。接下来将结果存储在plugin名称下。

可以看出,基于插件的套索估计包含了100个协变量中的9个,远少于基于CV的lasso或自适应lasso所包含的协变量。
5.比较预测结果
现在,我们有四种不同的得分预测指标:OLS,基于CV的套索,自适应套索和基于插件的套索。后三种套索方法可以使用套索估计的惩罚系数来预测得分,也可以使用第一种OLS估计的未惩罚系数来预测得分,OLS中仅包括套索选择的协变量。需要注明的是,使用惩罚套索估计的预测称为lasso预测,而使用未惩罚系数的预测称为postselection预测或postlasso预测。
对于线性模型,Belloni和Chernozhukov(2013)提出了先验条件:postselection预测至少与lasso预测所执行的结果类似。进一步的,人们希望基于CV的套索预测比postselection预测更好,因为CV选择了𝜆并做出最优的套索回归。类似地,人们希望基于插件的套索估计postselection预测比lasso预测表现更好,因为插件倾向于选择一组最近似生成数据过程的协变量。
实际上,我们使用套lasso预测和postselection预测来估计所有估计量的样本外MSE。我们选择产生预测的最低样本外MSE。
在下面的输出中,我们使用lassogof比较OLS的样本外预测性能和来自三种套索方法的预测性能。

对于这些数据,使用自适应套索比基于CV的套索要好一些。
在下面的输出中,我们使用postselection系数估计值比较OLS的样本外预测性能和三种套索方法的套索预测。

该结果表明,对于基于插件的套索产生最小的样本外MSE不足为奇。插件方法倾向于选择协变量,其后选择估计值可以很好地逼近数据。
真正的比较往往是在最好的受罚套索预测的lasso估计与基于插件的postselection估计之间。在这种情况下,基于插件的套索的产生了更好的样本外预测,我们将使用这些结果来预测得分。
6.弹性网络(elastic net)和岭回归(ridge regression)
弹性网络通过使用更一般的惩罚项来扩展套索估计。当协变量高度相关时,弹性网络作为一种方法,将产生更好的预测和模型选择。有关详细信息,请参见Zou和Hastie(2005)。
线性弹性网络得到的估计如下:

参数alpha是弹性网络惩罚参数。Lasso回归的alpha=1、岭回归的alpha=0,这就对应了惩罚函数的形式与目的。
而弹性网络通过CV选择了alpha与lamda。其中的alpha()选项给出了alpha的候选值。
我们看到,弹性网络在100个协变量中选择了25个。
为了进行比较,我们还使用弹性网络通过CV选择了惩罚参数来执行岭回归。

岭回归不执行模型选择,因此包括所有协变量。
现在,我们使用套索预测比较基于CV的套索、弹性网络、岭回归和基于插件的套索的样本外预测能力。(对于弹性网络和岭回归,“套索预测”是使用惩罚估计所产生的系数估计来进行的。)

在这种情况下,在套索估计中,受罚的弹性网络系数估计可以在样本外预测表现最好。基于插件的套索产生的postselection预测总体上表现最佳。通过将上面的输出与下面的输出进行比较可以看出这一点。

因此,我们将使用来自基于插件的套索来预测得分。
7.敏感性分析
敏感性分析的必要性在于:可以查看调整参数的小变化是否会导致预测性能的大变化。当查看基于CV的套索产生的lassoknots的输出时,不难注意到,由于惩罚估计产生的CV函数略有增加,因此所选协变量的数量可能会大大减少。恢复CV估计并重复lassoknots输出,得到:

套索选择ID=26和25协变量的𝜆。现在,我们使用lassoselect来指定ID=21作为选定的𝜆,并将结果存储在名称hand下。

我们计算由𝜆具有ID=21的套索的后选择估计产生的样本外预测的MSE。结果显示,两者间没有较大差异,因此,我们将坚持使用基于postselection插件的套索产生的结果。

8.结论
这篇文章介绍了套索估计和弹性网络,并说明了如何使用它们进行预测。Stata 16 LASSO手册中提供了更多信息。
9.参考文献

Belloni, A., D. Chen, V. Chernozhukov, and C. Hansen. 2012. Sparse models and methods for optimal instruments with an application to eminent domain. Econometrica 80: 2369–2429.

Belloni, A., and V. Chernozhukov. 2013. Least squares after model selection in high-dimensional sparse models. Bernoulli 19: 521–547.

Belloni, A., V. Chernozhukov, and Y. Wei. 2016. Post-selection inference for generalized linear models with many controls. Journal of Business & Economic Statistics 34: 606–619.

Bühlmann, P., and S. Van de Geer. 2011. Statistics for High-Dimensional Data: Methods, Theory and Applications. Berlin: Springer.

Chetverikov, D., Z. Liao, and V. Chernozhukov. 2019. On cross-validated Lasso. arXiv Working Paper No. arXiv:1605.02214. http://arxiv.org/abs/1605.02214.

Hastie, T., R. Tibshirani, and J. Friedman. 2009. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. New York: Springer.

Hastie, T., R. Tibshirani, and M. Wainwright. 2015. Statistical Learning with Sparsity: The Lasso and Generalizations. Boca Rotaon, FL: CRC Press.

Tibshirani, R. 1996. Regression shrinkage and selection via the lasso. Journal of the Royal Statistical Society, Series B 58: 267–288.

Zou, H. 2006. The adaptive Lasso and its oracle properties. Journal of the American Statistical Association 101: 1418–1429.

Zou, H., and T. Hastie. 2005. Regularization and variable selection via the elastic net. Journal of the Royal Statistical Society, Series B 67: 301–320.

附录:K折交叉验证
Cross-validation finds the value for 𝜆 in a grid of candidate values {𝜆1,𝜆2,…,𝜆𝑄} that minimizes the MSE of the out-of-sample predictions. Cross-validation sets 𝜔𝑗=1 or to user-specified values.
After you specify the grid, the sample is partitioned into 𝐾 nonoverlapping subsets. For each grid value 𝜆𝑞, predict the out-of-sample squared errors using the following steps.
For each 𝑘∈{1,2,…,𝐾},
  • using the data not in partition 𝑘, estimate the penalized coefficients 𝜷ˆ with 𝜆=𝜆𝑞.

  • using the data in partition 𝑘, predict the out-of-sample squared errors.

The mean of these out-of-sample squared errors estimates the out-of-sample MSE of the predictions. The cross-validation function traces the values of these out-of-sample MSEs over the grid of candidate values for 𝜆. The 𝜆𝑗 that produces the smallest estimated out-of-sample MSE minimizes the cross-validation function, and it is selected.
Source: https://blog.stata.com/2019/09/09/an-introduction-to-the-lasso-in-stata/

关于一些计量方法的合辑,各位学者可以参看如下文章:实证研究中用到的200篇文章, 社科学者常备toolkit”、实证文章写作常用到的50篇名家经验帖, 学者必读系列过去10年AER上关于中国主题的Articles专辑AEA公布2017-19年度最受关注的十大研究话题, 给你的选题方向2020年中文Top期刊重点选题方向, 写论文就写这些。后面,咱们又引荐了使用CFPS, CHFS, CHNS数据实证研究的精选文章专辑!这40个微观数据库够你博士毕业了, 反正凭着这些库成了教授Python, Stata, R软件史上最全快捷键合辑!关于(模糊)断点回归设计的100篇精选Articles专辑!关于双重差分法DID的32篇精选Articles专辑!关于合成控制法SCM的33篇精选Articles专辑!最近80篇关于中国国际贸易领域papers合辑!最近70篇关于中国环境生态的经济学papers合辑!使用CEPS, CHARLS, CGSS, CLHLS数据库实证研究的精选文章专辑!最近50篇使用系统GMM开展实证研究的papers合辑!

关于一些常用数据库,各位学者可以参看如下文章:1.这40个微观数据库够你博士毕业了2.中国工业企业数据库匹配160大步骤的完整程序和相应数据3.中国省/地级市夜间灯光数据4.1997-2014中国市场化指数权威版本5.1998-2016年中国地级市年均PM2.56.计量经济圈经济社会等数据库合集(在社群里)7.中国方言,官员, 行政审批和省长数据库开放8.2005-2015中国分省分行业CO2数据9.国际贸易研究中的数据演进与当代问题10.经济学研究常用中国微观数据手册11.疫情期Wind资讯金融终端操作指南12.CEIC数据库操作指南13.清华北大经管社科数据库有哪些? 不要羡慕嫉妒恨!14.金融领域三大中文数据库, CSMAR, CCER, Wind和CNRDS15.EPS最新版本使用手册16.疫情期计量课程免费开放!面板数据, 因果推断, 时间序列分析与Stata应用

下面这些短链接文章属于合集,可以收藏起来阅读,不然以后都找不到了。

2.5年,计量经济圈近1000篇不重类计量文章,

可直接在公众号菜单栏搜索任何计量相关问题,

Econometrics Circle




数据系列空间矩阵 | 工企数据 | PM2.5 | 市场化指数 | CO2数据 |  夜间灯光 | 官员方言  | 微观数据 | 内部数据计量系列匹配方法 | 内生性 | 工具变量 | DID | 面板数据 | 常用TOOL | 中介调节 | 时间序列 | RDD断点 | 合成控制 | 200篇合辑 | 因果识别 | 社会网络 | 空间DID数据处理Stata | R | Python | 缺失值 | CHIP/ CHNS/CHARLS/CFPS/CGSS等 |干货系列能源环境 | 效率研究 | 空间计量 | 国际经贸 | 计量软件 | 商科研究 | 机器学习 | SSCI | CSSCI | SSCI查询 | 名家经验计量经济圈组织了一个计量社群,有如下特征:热情互助最多前沿趋势最多、社科资料最多、社科数据最多、科研牛人最多、海外名校最多。因此,建议积极进取和有强烈研习激情的中青年学者到社群交流探讨,始终坚信优秀是通过感染优秀而互相成就彼此的。

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存