我正在使用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
我不明白拟合值(红线)是如何非常接近观测值(黑色)但是在第一次预测中有一个如此大的跳跃。
为什么我们看到这种跳跃的任何想法?我在Stack Exchange上看到过使用xreg
选项的其他帖子,但这并没有这样做,所以我还没能找到类似的帖子。
答案 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)
还有一个跳跃。但与系列的可变性相比,这种变化是相当合理的。
没有错。当我们从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)