我有一个每周的时代系列,我想为它找到最合适的模型。到目前为止,我已经尝试了 arima、带有 arima 误差的谐波回归、神经网络,最后我想决定哪一个更适合我的原始数据。时间序列看起来像这样,具有严重的季节性和循环模式:
我还将Ljung-Box测试和预测值的图放在这里:
# Arima
fit <- training %>% auto.arima(lambda = 0)
fit %>%
checkresiduals()
Ljung-Box test
data: Residuals from ARIMA(3,1,0)
Q* = 23.619, df = 23, p-value = 0.4252
Model df: 3. Total lags used: 26
#Harmonic regression with arima error
fit2 <- auto.arima(training, lambda = 0, seasonal = TRUE, xreg = fourier(training, K = 4))
fit2 %>%
checkresiduals()
Ljung-Box test
data: Residuals from Regression with ARIMA(2,1,1) errors
Q* = 21.642, df = 15, p-value = 0.1175
Model df: 11. Total lags used: 26
#Neural Network
fit3 <- nnetar(training, lambda = 0)
fit3
根据Ljung-Box测试,它们似乎都很好,但不知何故未能捕捉到这里时间序列的摆动形式,我不知道它有多重要。但我的主要问题是,当我检查准确性时,如果我选择 RMSE,我必须选择谐波回归,如果我选择 MAPE,我必须选择神经网络模型。而且我还想知道为什么 RMSE 和 MAPE 值在这里如此不同。
# Arima
accuracy(forecast(fit, h = 16), test)
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set 1.948693 27.56683 19.09467 -4.402578 25.87164 0.5790763 0.21495069 NA
Test set 43.293579 61.02374 46.31065 32.745528 39.26652 1.4044442 0.09636865 1.158678
# Harmonic Regression
accuracy(forecast(h = 16, fit2, xreg = fourier(training, K = 4)), test)
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set 4.323546 24.4800 16.05035 -1.464388 21.89874 0.4867525 0.1751586 NA
Test set -2.495049 42.1323 33.03114 -171.095704 194.16485 1.0017220 0.2349017 4.288442
# Neural Network
accuracy(forecast(fit3, h = 16), test)
ME RMSE MAE MPE MAPE MASE ACF1 Theil's U
Training set 3.414448 22.63083 14.31504 -2.615375 16.93870 0.4341265 0.2253450 NA
Test set 40.095160 58.90628 44.16645 28.908539 37.72779 1.3394181 0.1107563 1.119875
非常感谢您的帮助,我非常感谢您提前。




