为什么我的时间序列预测有所增加?

时间:2016-12-12 21:16:07

标签: r time-series forecasting

我正在使用auto.arima()广告资源中的forecast,并在预测中遇到了一些奇怪的结果。

library(forecast)

x <- structure(c(1.92, 2.1, 1.73, 1.35, 1.29, 1.35, 1.42, 1.46, 1.6, 
1.67, 1.98, 1.78, 1.77, 2.35, 1.93, 1.43, 1.29, 1.26, 1.93, 2.33, 
2.22, 2.19, 2.15, 2.25, 3.12, 3.32, 2.72, 2.28, 2.28, 2.16, 2.81, 
3.12, 2.85, 2.98, 3.3, 3.06, 3.56, 3.81, 3.48, 2.64, 2.91, 3.35, 
3.73, 3.58, 4, 3.94, 3.79, 3.85), .Tsp = c(2012, 2015.91666666667, 
12), class = "ts")

fit <- auto.arima(x)

plot(forecast(fit, 12)) #forecast and actual data
f2 <- fitted.values(fit)
lines(f2, col="red") #add predicted values during training

enter image description here

我不明白拟合值(红线)是如何非常接近观测值(黑色)但是在第一次预测中有一个如此大的跳跃。

为什么我们看到这种跳跃的任何想法?我在Stack Exchange上看到过使用xreg选项的其他帖子,但这并没有这样做,所以我还没能找到类似的帖子。

1 个答案:

答案 0 :(得分:0)

一般来说,我倾向于认为auto.arima略微过分数据。使用ACF进行的一些快速探索性分析表明,(0,1,2)(0,1,0)[12]已经是一个不错的模型。我将使用R base中的arima0来拟合此模型:

fit0 <- arima0(x, order = c(0,1,2), seasonal = c(0,1,0))

使用predict.arima0进行预测/预测:

pred <- predict(fit0, n.ahead = 12, se.fit = FALSE)

让我们一起观察系列和预测:

ts.plot(x, pred, col = 1:2)

arima0

还有一个跳跃。但与系列的可变性相比,这种变化是相当合理的。

没有错。当我们从x[49]预测x[1:48]时,它会与x[48]不同。通常,(0,1,2)(0,1,0)[12]具有线性趋势加上季节性影响。它有助于按季节可视化您的时间序列和预测:

ts.plot(window(x, 2012, 2012 + 11/12),
        window(x, 2013, 2013 + 11/12),
        window(x, 2014, 2014 + 11/12),
        window(x, 2015, 2015 + 11/12),
        pred, col = 1:5)

by season