R中的多变量分解?

时间:2013-06-03 00:26:55

标签: r forecasting decomposition stl-decomposition

我希望用季节性较大的组件来分解每日销售数据(为ARIMA流程制定365天的季节性时间太长)。但是,时间序列的某些部分由其他因素解释,包括影响数据的常规营销事件。我想以类似于在ARIMA中包含外生变量的方式使用R的stl函数,但我没有看到任何将外生变量放入混合的地方。相反,我在单独的回归中将外生变量应用于“余数”部分,但担心stl所带来的季节性因为所述常规营销事件而错误。

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

2 个答案:

答案 0 :(得分:2)

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

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

auto.arima(y, xreg=xreg)

使用傅立叶级数处理季节性假设它的形状不变。但是,除非你有多年的数据,否则这不是一个真正的问题,因为它不太可能在不到20年的时间内改变形状,并且ARIMA错误将在任何情况下针对小的变化进行调整。

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

答案 1 :(得分:1)

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