我有一组带有季节性、趋势和ARMA部分的数据系列,我想根据历史数据来预测这个系列。
我可以使用以下步骤:
data_ts <- ts(data, frequency = 24)
data_deseason <- stl(data_ts, t.window=50, s.window='periodic', robust=TRUE)
f <- forecast(data_deseason, method='arima', h = N)
但是我不能选择Arima模型的参数,这是我想做的。上述代码似乎使用了类似auto.arima的方法,自动选择Arima模型的参数 - 但是执行速度非常快,比auto.arima还要快 - 所以不确定会发生什么。
或者,我可以使用上述代码将数据分成季节、趋势和余数三部分,但是如何进行预测呢?我应该为趋势和余数分别建立ARMA模型吗?
trend_arima <- Arima(data_deseason$time.series[,'trend'], order = c(1,1,1))
remainder_arima <- Arima(data_deseason$time.series[,'remainder'], order = c(1,1,1))
然后使用forecast()函数加上上述两个组件和季节。或者有没有一些方法可以提取stl找到的趋势模型呢?
谢谢任何提示 :) 本杰明
stl
使用loess(局部回归)将时间序列分解为季节性、趋势和不规则成分,详见?stl
。因此,这不是ARIMA模型。如果您知道您的时间序列遵循具有季节性和趋势的ARIMA过程,为什么不适配一个季节性ARIMA模型并相应地差分数据呢?请参见例如https://www.otexts.org/fpp/8/9。STL或ARIMA哪个表现更好取决于解释/测试。 - thie1e