【问题标题】:Multivariate Decomposition in R?R中的多元分解?
【发布时间】:2013-05-29 02:57:53
【问题描述】:

我希望分解具有高度季节性成分的每日销售数据(使 365 天的季节性对于 ARIMA 流程来说太长了)。但是,时间序列的某些部分由其他因素解释,包括影响数据的常规营销事件。我想以类似于在 ARIMA 中包含外生变量的方式使用 R 的 stl 函数,但我没有看到任何地方可以将外生变量放入其中。相反,我在单独的回归中将外生变量应用于“余数”部分,但担心stl 拾取的季节性会由于上述常规营销事件而出错。

关于如何解决此问题的任何建议?

【问题讨论】:

    标签: r forecasting decomposition stl-decomposition


    【解决方案1】:

    STL 有点受限,因为它一次只能处理一种季节性,而且您可能有两种季节性(每周和每年)。此外,它不允许外生变量。

    一种可能的方法是使用具有 ARMA 误差的回归模型,其中数据的季节性周期设置为 7(对于每周季节性)。您可以使用傅立叶项 (http://robjhyndman.com/hyndsight/longseasonality/) 作为回归变量来处理年度季节性。营销事件可以使用xreg 参数中包含的虚拟变量来处理。您甚至可以使用forecast 包中的auto.arima 来选择错误的顺序,包括是否需要考虑任何每周季节性。只需使用傅里叶项和虚拟变量设置 xreg,然后调用

    auto.arima(y, xreg=xreg)
    

    使用傅立叶级数处理季节性假设它的形状不变。但是,除非您拥有多年的数据,否则这并不是一个真正的问题,因为它不太可能在不到 20 年的时间里发生很大变化,并且 ARIMA 误差无论如何都会针对微小的变化进行调整。

    如果数据中存在显着趋势,您还应该在模型的回归部分中考虑到这一点。添加一些 B 样条项应该可以处理它。

    【讨论】:

    • 谢谢。不幸的是,我正在处理几年的数据和季节性变化,但我相信我可以在分析之前调整数据集以使季节性不变化。另外,还有一个问题——带有外生变量的 auto.arima 是否支持逐步选择?我有许多营销变量,所有这些变量都可能很重要,但也可能受到季节性的严重影响,以至于它们可能无法预测。
    • 没有。 auto.arima() 将使用您传递的回归变量。它选择 ARIMA 错误的顺序,但不会在回归变量中进行选择。
    【解决方案2】:

    我可以推荐 Hyndman 在cran 上的预测包。在那里,bats 或 tbats 模型应该允许复杂的季节性和代表营销事件的虚拟变量。

    【讨论】:

    • 我和教授签到了。 Hyndman,得知tbats 不接受外生变量。但是,他提到您可以在包中组合功能......尽管我必须做更多的研究才能了解如何在我的情况下实现它。
    • 我不知道,但这听起来很有趣,您能否在获得更多信息后跟进?
    • 看起来他引用的只是前层次预测。所以,这个问题仍然存在。 Hyndman 教授,也许你可以在这里插话?
    • 是的,batstbats 不允许使用回归变量。请参阅我的答案以获得更好的方法。
    猜你喜欢
    • 2018-05-27
    • 2015-09-05
    • 2017-03-08
    • 1970-01-01
    • 2021-11-14
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多