当您将频率定义为 24 时,我假设您每个周期使用 24 小时(每天),因此在您的历史数据集中大约有 2 个周期。一般来说,这是启动时间序列预测的有限样本数据。我建议您获取更多数据,然后您可以再次进行预测模型。您拥有的数据越多,它就越能捕捉到季节性,从而预测未来的价值。由于 auto.arima 等可用的自动算法有限,通常默认使用类似于移动平均线的东西。您的数据集应该得到比移动平均线更好的东西,因为周期中有一些季节性。有许多预测算法可以帮助您更好地塑造远期曲线;Holt-Winters 或其他指数平滑方法可能会有所帮助。然而,自动。
获取更多数据并执行相同的例程将改善您的图表。就个人而言,我更喜欢使用forecast
over predict
; 数据似乎和图表一样好一点,因为它显示了您的置信区间。在代码中,我还通过复制两个句点稍微扩展了数据集,所以我们得到了四个句点。看下面的结果:
library(forecast)
value <- c(1.2,1.7,1.6, 1.2, 1.6, 1.3, 1.5, 1.9, 5.4, 4.2, 5.5, 6.0, 5.6, 6.2, 6.8, 7.1, 7.1, 5.8, 0.0, 5.2, 4.6, 3.6, 3.0, 3.8, 3.1, 3.4, 2.0, 3.1, 3.2, 1.6, 0.6, 3.3, 4.9, 6.5, 5.3, 3.5, 5.3, 7.2, 7.4, 7.3, 7.2, 4.0, 6.1, 4.3, 4.0, 2.4, 0.4, 2.4, 1.2,1.7,1.6, 1.2, 1.6, 1.3, 1.5, 1.9, 5.4, 4.2, 5.5, 6.0, 5.6, 6.2, 6.8, 7.1, 7.1, 5.8, 0.0, 5.2, 4.6, 3.6, 3.0, 3.8, 3.1, 3.4, 2.0, 3.1, 3.2, 1.6, 0.6, 3.3, 4.9, 6.5, 5.3, 3.5, 5.3, 7.2, 7.4, 7.3, 7.2, 4.0, 6.1, 4.3, 4.0, 2.4, 0.4, 2.4)
sensor <- ts(value,frequency=24) # consider adding a start so you get nicer labelling on your chart.
fit <- auto.arima(sensor)
fcast <- forecast(fit)
plot(fcast)
grid()
fcast
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
3.000000 2.867879 0.8348814 4.900877 -0.2413226 5.977081
3.041667 3.179447 0.7369338 5.621961 -0.5560547 6.914950
3.083333 3.386926 0.7833486 5.990503 -0.5949021 7.368754
3.125000 3.525089 0.8531946 6.196984 -0.5612211 7.611400
3.166667 3.617095 0.9154577 6.318732 -0.5147025 7.748892