首页 > 其他分享 >用LASSO,adaptive LASSO预测通货膨胀时间序列|附代码数据

用LASSO,adaptive LASSO预测通货膨胀时间序列|附代码数据

时间:2023-06-16 14:22:24浏览次数:50  
标签:预测 ## 回归 序列 adaptive LASSO 模型 lasso

原文链接:http://tecdat.cn/?p=22273

最近我们被客户要求撰写关于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")

图片


点击标题查阅往期内容

图片

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

图片

左右滑动查看更多

图片

01

图片

02

图片

03

图片

04

图片

 
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.


图片

本文摘选 《 R语言用LASSO,adaptive LASSO预测通货膨胀时间序列 》 ,点击“阅读原文”获取全文完整资料。


点击标题查阅往期内容

MATLAB用Lasso回归拟合高维数据和交叉验证
群组变量选择、组惩罚group lasso套索模型预测新生儿出生体重风险因素数据和交叉验证、可视化
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
R使用LASSO回归预测股票收益
广义线性模型glm泊松回归的lasso、弹性网络分类预测学生考试成绩数据和交叉验证
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据(含练习题)
广义线性模型glm泊松回归的lasso、弹性网络分类预测学生考试成绩数据和交叉验证
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据(含练习题)
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
Python中的Lasso回归之最小角算法LARS
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
R语言实现LASSO回归——自己编写LASSO回归算法
r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
R使用LASSO回归预测股票收益
R语言如何和何时使用glmnet岭回归
R语言中的岭回归、套索回归、主成分回归:线性模型选择和正则化
Python中的ARIMA模型、SARIMA模型和SARIMAX模型对时间序列预测
R语言arima,向量自回归(VAR),周期自回归(PAR)模型分析温度时间序列
【视频】Python和R语言使用指数加权平均(EWMA),ARIMA自回归移动平均模型预测时间序列
Python用ARIMA和SARIMA模型预测销量时间序列数据

标签:预测,##,回归,序列,adaptive,LASSO,模型,lasso
From: https://www.cnblogs.com/tecdat/p/17485415.html

相关文章

  • Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测标准普尔指数
    原文链接:http://tecdat.cn/?p=24480 最近我们被客户要求撰写关于风险价值的研究报告,包括一些图形和统计输出。此示例说明如何使用三种方法估计风险价值(VaR)并执行VaR回测分析。这三种方法是:正态分布历史模拟指数加权移动平均线(EWMA)风险价值是一种量化与投......
  • 时间序列异常检测:统计和机器学习方法介绍
    理解时间序列数据在深入研究异常检测技术之前,先简单介绍时间序列数据的特征。时间序列数据通常具有以下属性:趋势:数据值随时间的长期增加或减少。季节性:以固定间隔重复的模式或循环。自相关:当前观测值与先前观测值之间的相关性。噪声:数据中的随机波动或不规则。让我们......
  • 换个思路,简单很多——B3637 最长上升子序列
    题面:B3637最长上升子序列-洛谷|计算机科学教育新生态(luogu.com.cn)  可恶,搞了半天结果是很简单的一个题目  我一直在想目标序列的左右对称  即序列中每一个负数块的和都小于左右两侧任一部分的和后来看了几个题解,发现只要从一个方向扫一遍,就必定扫到最优解  将和......
  • XML反序列化笔记
    反序列化枚举类型public银行卡类型marcaTarjeta{get;set;}publicenum银行卡类型{[XmlEnum(Name="0")]UnKnown=0,[XmlEnum(Name="1")]VISA=1,[XmlEnum(Name="2")]MASTERC......
  • mormot2 model序列和还原
    mormot2model序列和还原unitmormot2.json.serial;///<author>cxg2023-6-4</author>{$Idef.inc}interfaceusesmormot.core.buffers,mormot.core.text,mormot.core.json,mormot.core.base,Classes,SysUtils;type{TSerial}TSerial=c......
  • delphi model序列和还原
    delphimodel序列和还原封装了json和protobuf。unitserialize;///<author>cxg2022-8-30</author>interfaceusesSystem.SysUtils,Grijjy.ProtocolBuffers,System.JSON.Serializers;typeTSerial=classpublic//unmarshalclassfunctionun......
  • TDSQL产品序列理解
    为了增强战斗力和品牌识别度,腾讯把他们的数据库做了一次整合,原来的各种数据库揉在一起成了一个新产品线,分别叫TDSQL-A、TDSQL-C、TDSQL。每个产品是干嘛的?太乱了。谁看得懂这背后到底是几个数据库?作为阿里的同学,把它们大致对标成阿里系的产品,理解起来会简单一些:阿里腾讯分析ADBTD......
  • 016 数据库学习笔记--序列
    序列:获取唯一值,序列不支持事务回滚,会出现跳号SQLServer序列是一种逐步增加的命名的唯一的索引,它可以将一个整数标示符与一个数据行关联起来,并可保证该索引特别唯一。凭借这一特性,序列对于对数据进行安全且按照某种有意义的排序进行保存的场景非常有用。序列是一种用户定义的架......
  • 如何使用libavcodec将.yuv图像序列编码为.h264的视频码流?
    1.实现打开和关闭输入文件和输出文件的操作点击查看代码//io_data.cppstaticFILE*input_file=nullptr;staticFILE*output_file=nullptr;int32_topen_input_output_files(constchar*input_name,constchar*output_name){if(strlen(input_name)==0||strlen(ou......
  • 算法题总结-最长回文序列
    原题https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1?tpId=37&tqId=21255&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fdifficulty%3D3%26page%3D1%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&am......