Nan*_*ndu 7 regression r time-series linear-regression forecasting
我有以下R代码
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, 5.6,
6.2, 6.8, 7.1, 7.1, 5.8, 0, 5.2, 4.6, 3.6, 3, 3.8, 3.1, 3.4,
2, 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, 6.1, 4.3, 4, 2.4, 0.4, 2.4)
sensor<-ts(value,frequency=24)
fit <- auto.arima(sensor)
LH.pred<-predict(fit,n.ahead=24)
plot(sensor,ylim=c(0,10),xlim=c(0,5),type="o", lwd="1")
lines(LH.pred$pred,col="red",type="o",lwd="1")
grid()
Run Code Online (Sandbox Code Playgroud)
结果图是

但我对预测并不满意.有没有办法让预测看起来与之前的价值趋势相似(见图表)?
Joc*_*hem 18
当您将频率定义为24时,我假设您每个周期24小时(每天)工作,因此您的历史数据集中大约有2个周期.一般来说,这是有限的样本数据,以启动时间序列预测.我建议您获取更多数据,然后再次进行预测模型.您获得的数据越多,它就越能抓住季节性因素,从而预测未来的价值.有限的可用自动算法,如auto.arima,通常默认类似于移动平均线.您的数据集应该比移动平均值更好,因为周期中有一些季节性.有许多预测算法可以帮助您更好地塑造前向曲线; 像Holt-Winters或其他指数平滑方法之类的东西可能有所帮助.然而,auto.arima也是一个不错的选择(我会首先尝试看看我能用这个做什么).
获取更多数据并完成相同的例程将改善您的图表.就个人而言,我更喜欢使用forecast结束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
Run Code Online (Sandbox Code Playgroud)
