用正则化或罚分拟合ARIMAX模型(例如,套索,弹性网或岭回归)


29

我在预测包中使用了auto.arima()函数来拟合具有各种协变量的ARMAX模型。但是,我经常有很多变量可供选择,并且通常最终得到一个最终模型,该模型可以使用其中的一个子集。我不喜欢用于变量选择的临时技术,因为我是人类并且容易受到偏见的影响,但是交叉验证时间序列比较困难,因此我没有找到一种自动尝试可用变量的不同子集的好方法,并且我无法根据自己的最佳判断来调整模型。

当我拟合glm模型时,可以通过glmnet软件包使用弹性网或套索进行正则化和变量选择。R中是否存在用于在ARMAX模型上使用弹性网的现有工具包,还是我必须自己开发?这是个好主意吗?

编辑:手动计算AR和MA项(例如,直到AR5和MA5)并使用glmnet拟合模型是否有意义?

编辑2:看来,FitAR软件包使我受益匪浅,但并非全部。


2
我很想知道您是否曾经设法解决这个问题。我已将其标记为任何更新-因此只需触摸此处即可。
维沙尔·贝尔萨雷

从来没有努力解决这个问题。我曾想过编写自己的实现,但并没有解决。也许您可以手动计算AR和MA术语,然后将glmnet应用于该数据?
Zach 2012年

1
嗨,扎克(Zach),我想知道您是否已采取了进一步措施,还是仍在停放。我需要这样的算法来预测大量序列。
Matt Weller 2014年

3
@MattWeller我与forecastR 的出色软件包的作者Rob Hyndman进行了交谈。他说,完整的ARIMA很难,因为您必须将套索包裹在非线性ARIMA优化器周围。一种局部解决方案是使用glmnet带有滞后变量的AR模型。据我所知,还没有人使用完整的ARIMA模型来做到这一点。
2014年

Answers:


7

这不是解决方案,而是对我所知道的可能性和困难的一些思考。

Yt+1=xtβ+ϵt+1
xtβxt

Yt+1=f(xt,β)+ϵt+1
β
Yt+1=xtg(β)+ϵt+1
βg(β)

另一个问题是惩罚量(调整参数)的选择。通常,它需要针对时间序列进行交叉验证的形式,但我希望能够为特定模型制定出一些对计算要求不高的方法。


R的插入符号包具有良好的时间序列交叉验证实现,可用于选择glmnet的参数。感谢您的回答。
Zach 2013年

2

我受到客户的挑战,要求以自动即交钥匙的方式解决此问题。我实现了一种方法,对每对(即y和候选x)进行预白化,计算预白化系列的互相关性,在将干预检测与得出可靠的估计,为此结构制定“措施”。在对所有候选回归变量执行此操作后,按“度量”对它们进行排名,然后根据“度量”选择排名靠前的K个回归变量。有时将其称为线性过滤。我们成功地将此启发式方法整合到了我们的商用时间序列包中。您应该可以“滚动自己的”


我特别想将套索或弹性网合并到ARIMA模型中。
Zach

3
我并不是真正在寻找线性滤波器(尽管这很有用)。我特别想要一种将套索,山脊回归或弹性网合并到ARIMAX模型中的方法。
Zach 2012年

2
目前,我对电平移动,本地时间趋势,系数移动或非恒定误差方差不感兴趣。我对将套索,山脊或弹性网正则化应用于ARIMAX模型非常感兴趣。
Zach 2013年

2
如果您可以将套索,岭或弹性网正则化合并到上述方法中,并以开放源代码编程语言发布一些示例代码,我将很乐意为您提供奖励。
Zach

1
@frank,您正在尝试通过估算(逐步降低)进行识别,但是这种方法不起作用,因为可能脉冲,电平移动,季节性脉冲和时间趋势的组合太多了。如果这些结构是必需的但被忽略,则参数估计会出现偏差,而有意义的参数测试则无法进行。
IrishStat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.