R语言用LASSO,adaptive LASSO 预测通货膨胀时间序列

如果你了解数据科学领域,你可能听说过LASSO。LASSO是一个对目标函数中的参数大小进行惩罚的模型,试图将不相关的变量从模型中排除。

由Kaizong Ye,Sherry Deng撰写

最近我们被客户要求撰写关于LASSO的研究报告。它有两个非常自然的用途,第一个是变量选择,第二个是预测。因为通常情况下,LASSO选择的变量会比普通最小二乘法(OLS)少得多,其预测的方差会小得多,代价是样本中出现少量的偏差。


LASSO最重要的特点之一是它可以处理比观测值多得多的变量,我说的是成千上万的变量。这是它最近流行的主要原因之一。

实例

在这个例子中,我使用最流行的LASSO,glmnet。我们可以非常快速地估计LASSO,并使用交叉验证选择最佳模型。

×

0. 预备知识-最小二乘估计的理论推导

上一篇文章中写了最小二乘估计的解为 [公式] ,过程略去了,但我觉得为了更好的理解其思想还是应该把推导过程给大家列出来。(接下来的推导过程摘自王松桂—《线性模型引论》4.1节)

线性模型如下:

[公式]

获取参数向量的估计的最小二乘法的基本思想为: [公式] 的真值应该使误差向 [公式] 达到最小,也就是它的长度平方

[公式]

达到最小。因此,我们应该通过求 [公式] 的最小值来求 [公式] 的估计,注意到

[公式]

对 [公式] 求偏导为

[公式]

于是 [公式] ,令其等于0,得到: [公式] ,称之为正则方程

补充一个定理:设 [公式] 为相容线性方程组,且 [公式] ,那么当 [公式] 取遍 [公式] 的所有广义逆时, [公式] 构成了该方程组的全部解。

因为向量 [公式] ,于是正则方程是相容的,根据定理,正则方程的解为 [公式]

明明我们对正则方程左乘一个 [公式] 就能得到上式了,为啥还要说其相容、广义逆什么的?因为只是简单左乘那是线性代数的运算,不是方程解。只有通过这样一个定理,才可以说这样得到的 [公式] 是方程的解。

根据函数极值理论,我们知道 [公式] 只是函数 [公式] 的驻点,我们还需证明它确实使 [公式] 达到最小。事实上,对任意一个 [公式] ,(下面这个公式我们在后面讲SCAD还会用到)

[公式]

因为 [公式] 满足正则方程,于是上式第三项 [公式] 为 [公式] ,而第二项总是非负的,于是

[公式]

此式表示, [公式] 确使 [公式] 达到最小。

现在我们再进一步证明,使 [公式] 达到最小的必是 [公式] 。事实上,上式等号成立,当且仅当 [公式] 等价地, [公式] ,不难证明,该式又等价于 [公式] .

这就证明了,使 [公式] 达到最小值的点必为正则方程的解 [公式] .

1. Adaptive Lasso

Adaptive Lasso 是Hui Zou(中文名应该是邹辉)于2006年在《The Adaptive Lasso and Its Oracle Properties》中提出的,是一篇高被引的文章,很多论文中都有它的身影。

Lasso估计是使 [公式] 达到最小的估计,Hui Zou在文中指出Lasso在变量选择时会出现不一致性。Adaptive Lasso在里面增加了一个权重 [公式] ,具体为

[公式]

权重的选择可以依赖数据驱动,通过交叉验证的方式得到。若 [公式] 是root n consistent estimator,可取 [公式] 可取1,这方面的研究可以看下《Adaptive Lasso For Sparse High-Dimensional Regression Models》。

2. Dantzig Selector

Dantzig Selector是Emmanuel Cansed 和 Terence Tao于2007年在《The Dantzig Selector: Statistical Estimation When p Is Much Larger Than n 》中提出的。

Dantzig Selector方法即求解 [公式] -正则问题:

[公式]

其中 [公式] ,上面的问题可以转换成一个线性规划(LP)问题:

[公式]

3. SCAD

SCAD方法是大佬范剑青于2001年发表在 Journal of the American Statistical Association的文章《Variable Selection via Nonconcave Penalized Likelihood and its Oracle Properties》中提出的。

还是那个线性模型:

[公式]

为了避免与惩罚函数 [公式] 的 [公式] 冲突,我们这里的 [公式] 设为 [公式] 的。

首先要说明,为了在变量选择过程中看的更清晰,这里假设 [公式] 是标准正交的,这个假设在很多论文、教材中都有广泛的使用,在该假设下,最小二乘估计 [公式] 的形式就变成了 [公式] .

我们的目标是最小化目标函数:

[公式]

岭回归就是在上式的基础上添加了惩罚函数 [公式] ,Lasso添加的是 [公式] ,目前很多人都是在这个惩罚函数上做文章,称为惩罚最小二乘(penalized least squares),应用较多的是1-范数,因为其性质可以使不重要的参数压缩到0,因此我们以 [公式] 表示(Lasso就是这里面最简单的形式 [公式] )。

因此惩罚最小二乘的形式为:

[公式]

这里添加 [公式] 是常用的一种写法,求导后可消去。上式中的第三项我们在预备知识说过了,它等于0。对于第二项,因为 [公式] 是标准正交的,因此第二项就成了 [公式] (这里之所以写了这么多形式,是为了让大家了解论文中常用的这几种变形),这样我们得到最终形式

[公式]

为了和论文中的符号对齐,令 [公式] ,这样我们就和论文中的公式完全一致了

[公式]

最后,为了让惩罚函数 [公式] 可以表示其与 [公式] 相关,下面用 [公式] 来表示惩罚函数。

关于公式(2),使其最小等价于最小化 [公式] ,简写为

[公式]

你可能会有疑问,前面还一个 [公式] 怎么就不管了呢?在预备知识的公式(1)下面我们说过,第二项 [公式] 是非负的,若使等号成立就要求其等于0,这样 [公式] 。公式(2)也是同理, [公式] 与 [公式] 相差 [公式] ,因此我们只要使其最小即可。

接下来就是惩罚函数SCAD(Smoothly Clipped Absolute Deviation)了:

[公式] 这个惩罚函数使得比较大的 [公式] 不会被过度惩罚并且保证了解的连续性,其解为

[公式] 对于该惩罚中的两个参数 [公式] ,可以通过交叉验证来得到,不过文章中也给出了一个较为通用的值, [公式] ,在 [公式] 时, [公式] 。



根据我的经验,在时间序列的背景下,使用信息准则(如BIC)来选择最佳模型会更好。它更快,并避免了时间序列中交叉验证的一些复杂问题。

本文估计LASSO,并使用信息标准来选择最佳模型。我们将使用LASSO来预测通货膨胀。

## == 数据分解成训练和测试
y.in=y\[1:100\]; y.out=y\[-c(1:100)\]
x.in=x\[1:100,\]; x.out=x\[-c(1:100),\]

## == LASSO == ##
glmnet(x.in,y.in,crit = "bic")

视频

Lasso回归、岭回归等正则化回归数学原理及R语言实例

探索见解

去bilibili观看

探索更多视频

plot(lasso)

上面的第一个图显示,当我们增加LASSO目标函数中的惩罚时,变量会归零。第二张图显示了BIC曲线和选定的模型。现在我们可以计算预测了。

adaptive LASSO

LASSO有一个自适应版本,在变量选择方面有一些更好的特性。请注意,这并不总是意味着更好的预测。该模型背后的想法是使用一些以前知道的信息来更有效地选择变量。一般来说,这些信息是由LASSO或其他一些模型估计的系数。

## = adaLASSO = ##

adalasso(x.in,y.in,crit="bic",penalty=factor)
predict(adalasso, x.out)

r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现

阅读文章



随时关注您喜欢的主题


## = 比较误差 = ##
sqrt(mean((y.out-pred.ada)^2)

在这种情况下,adaLASSO产生了一个更精确的预测。一般来说,adaLASSO比简单的LASSO的预测效果更好。然而,这不是一个绝对的事实。我见过很多简单LASSO做得更好的案例。

参考文献

[1] Bühlmann, Peter, and Sara Van De Geer. Statistics for high-dimensional data: methods, theory and applications. Springer Science & Business Media, 2011.

[2] Jerome Friedman, Trevor Hastie, Robert Tibshirani (2010). Regularization Paths for
Generalized Linear Models via Coordinate Descent. Journal of Statistical Software, 33(1), 1-22. URL http://www.jstatsoft.org/v33/i01/

[3] Marcio Garcia, Marcelo C. Medeiros , Gabriel F. R. Vasconcelos (2017). Real-time inflation forecasting with high-dimensional models: The case of Brazil. Internationnal Journal of Forecasting, in press.


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds