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

简介: 用LASSO,adaptive LASSO预测通货膨胀时间序列

动机

如果你了解数据科学领域,你可能听说过LASSO。LASSO是一个对目标函数中的参数大小进行惩罚的模型,试图将不相关的变量从模型中排除。它有两个非常自然的用途,第一个是变量选择,第二个是预测。因为通常情况下,LASSO选择的变量会比普通最小二乘法(OLS)少得多,其预测的方差会小得多,代价是样本中出现少量的偏差。

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

实例

在这个例子中,我使用最流行的LASSO,glmnet。我们可以非常快速地估计LASSO,并使用交叉验证选择最佳模型。根据我的经验,在时间序列的背景下,使用信息准则(如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")


plot(lasso)

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

## == 预测 == ##
predict(lasso,x.out)

adaptive LASSO

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

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

## = 比较误差 = ##
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.

相关文章
|
4天前
|
机器学习/深度学习 vr&ar Python
R语言用logistic逻辑回归和AFRIMA、ARIMA时间序列模型预测世界人口
R语言用logistic逻辑回归和AFRIMA、ARIMA时间序列模型预测世界人口
10 0
|
6天前
|
机器学习/深度学习
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC(下)
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC
72 7
|
13天前
R语言用LASSO,adaptive LASSO预测通货膨胀时间序列
R语言用LASSO,adaptive LASSO预测通货膨胀时间序列
14 0
|
6天前
|
机器学习/深度学习 数据可视化 计算机视觉
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC(上)
数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC
17 4
|
6天前
|
机器学习/深度学习 vr&ar Python
数据分享|R语言用logistic逻辑回归和AFRIMA、ARIMA时间序列模型预测世界人口
数据分享|R语言用logistic逻辑回归和AFRIMA、ARIMA时间序列模型预测世界人口
57 6
|
14天前
R语言stan泊松回归Poisson regression
R语言stan泊松回归Poisson regression
18 1
|
14天前
|
数据挖掘
R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
13 0
|
6月前
|
机器学习/深度学习
【机器学习】线性回归:OLS、RR和Lasso
【机器学习】线性回归:OLS、RR和Lasso
51 1
|
11月前
|
数据可视化
L1、L2范数理解--Ridge以及Lasso回归
L1、L2范数理解--Ridge以及Lasso回归
84 0
|
12月前
|
机器学习/深度学习 传感器 算法
分类预测 | MATLAB实现基于PSO-NN、SVM、KNN、DT的多特征数据分类预测,二分类及多分类
分类预测 | MATLAB实现基于PSO-NN、SVM、KNN、DT的多特征数据分类预测,二分类及多分类

相关实验场景

更多