我试图做一些需求预测与日常数据,从2012年1月16日到2013年10月10日。但预测只会返回可怕的结果。任何线索为什么?R,时间系列,华宇模型,预测,每日数据
这是数据在情节中的样子:存在每周和每月的季节性。即:平日需求增加,周末需求减少。
下面是预测图的样子:其中黑线是实际的数据和蓝色线是预测的数据。
x = ts(data, freq=7, start=c(3,2))
fit <- auto.arima(x)
pred <- forecast(fit, h=300)
我做了如何适应每天的数据与ARIMA模型了大量的研究。由于每周都有季节性因此我选择了freq = 7。
但是,由于预测不好。有人很好地指出了Hyndman教授分享的具有多个季节性拟合模型的方法之一。
https://stats.stackexchange.com/questions/74418/frequency-of-time-series-in-r/74426#74426
所以我把好人的意见,并从上面的链接给出2种方法拟合模型。
方法1:使用tbats()函数。
x_new <- msts(x, seasonal.periods=c(7,7*52))
fit <- tbats(x_new)
fc <- forecast(fit, h=7*52)
我用每周季节性7和每年季节性7 * 52。因为我没有想出一个简单的方法来获得每月的季节性。根据结果,预测也不好。注意:如果我使用7 * 4作为每月的第二个季节周期,则会给预测带来更坏的结果。方法2:使用fouriers作为xreg。
seas1 <- fourier(x, K=1)
seas2 <- fourier(ts(x,freq=7*52), K=1)
fit <- auto.arima(x, xreg=cbind(seas1,seas2))
seas1.f <- fourierf(x, K=1, h=7*52)
seas2.f <- fourierf(ts(x,freq=7*52), K=1, h=7*52)
fc1 <- forecast(fit, xreg=cbind(seas1.f, seas2.f))
我有不同钾肥试了一下,它不会提高预测。
因此,我卡住了!由于预测的结果很顺利。谁能指出我的错误在哪里?或者我应该如何改进我的模型?
非常感谢!
这个问题似乎是无关紧要的,因为它比R代码更关注统计建模。 –