1

我有一个简单的示例时间序列:

在此处输入图像描述

数据:

 Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov   Dec
2000 200.1 199.5 199.4 198.9 199.0 200.2 198.6 200.0 200.3 201.2 201.6 201.5
2001 201.5 203.5 204.9 207.1 210.5 210.5 209.8 208.8 209.5 213.2 213.7 215.1
2002 218.7 219.8 220.5 223.8 222.8 223.8 221.7 222.3 220.8 219.4 220.1 220.6
2003 218.9 217.8 217.7 215.0 215.3 215.9 216.7 216.7 217.7 218.7 222.9 224.9
2004 222.2 220.7 220.0 218.7 217.0 215.9 215.8 214.1 212.3 213.9 214.6 213.6
2005 212.1 211.4 213.1 212.9 213.3 211.5 212.3 213.0 211.0 210.7 210.1 211.4
2006 210.0 209.7 208.8 208.8 208.8 210.6 211.9 212.8 212.5 214.8 215.3 217.5
2007 218.8 220.7 222.2 226.7 228.4 233.2 235.7 237.1 240.6 243.8 245.3 246.0
2008 246.3 247.7 247.6 247.8 249.4 249.0 249.9 250.5 251.5 249.0 247.6 248.8
2009 250.4 250.7 253.0 253.7 255.0 256.2 256.0 257.4 260.4 260.0 261.3 260.4
2010 261.6 260.8 259.8 259.0 258.9 257.4 257.7 257.9 257.4 257.3 257.6 258.9
2011 257.8 257.7 257.2 257.5 256.8 257.5 257.0 257.6 257.3 257.5 259.6 261.1
2012 262.9 263.3 262.8 261.8 262.2 262.7                    

然后我运行了 4 个不同的时间序列预测模型:Holt Winters 平滑、TBATS 平滑、ARIMA 和具有以下功能的 AR 神经网络:HoltWinters()、tbats()、auto.arima()、nnetar()

我预测了 36 个时期(3 年)。结果如下:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

我的问题是为什么 HoltWinters 似乎是唯一有意义的预测。我有足够的数据得到所有其他预测的平线似乎很奇怪。就像有什么东西坏了,或者我不理解什么东西。特别是因为 TBATS 是 Holt Winters 的广义形式。只看系列 ARIMA 应该输出比平均平均值更多的东西吗?正确的?(1,1,1) 甚至暗示它考虑了差异。此外,没有一个模型似乎失败并返回一个空模型。很好奇为什么我会看到这些结果以及如何解释。

非常感谢任何帮助或解释!

顺便说一句,需求是一个ts对象。

下面是我的代码:

hw_test = HoltWinters(demand)
hw_forecast = forecast(hw_test, h=36)
plot(hw_forecast)

arima_test = auto.arima(demand)
arima_forecast = forecast(arima_test, h=36)
plot(arima_forecast)

tbats_test = tbats(demand)
tbats_forecast = forecast(tbats_test, h=36)
plot(tbats_forecast)

nn_test = nnetar(demand)
nn_forecast = forecast(nn_test, h=36)
plot(nn_forecast)
4

1 回答 1

0

这完全取决于如何计算给定范围的预测。例如,如果 Holt-Winters 中的季节性分量为 0,那么您的蓝线将是一条递增的直线。这些周期是由季节性因素引起的调整。

各种模型更适合用于像 1~10 这样的小范围,因为它们计算一个代表时间序列的值(基于平均值的模型),或者根据使用直线方程(回归) 等。使用此类模型,预测更长的时间范围意味着将时间序列的这种表示推断时间过长。

出于这个原因,也许你应该减少这些模型的范围以获得更好的结果,或者依赖 Holt-Winters 或非线性回归模型,它们有足够的组件来调整更长范围的值。

于 2017-11-24T08:10:31.170 回答