我用这个
tutorial
并试图建立具有ARIMA误差的回归。
我有3年的时间段,只有2017-2019年,我想用外生变量预测2020年。我总共有4500人和他们,我用2017-2018年进行训练,2019年进行测试。
# Split data for train and test
df_train <- df %>% filter(Year != 2019)
df_test <- df %>% filter(Year == 2019)
# Select xreg variables
xregvars_train <- cbind(# here I combine 9 variables)
# Convert to matrix
xregvars_train <- matrix(as.numeric(xregvars_train), ncol = 9)
# Retrain model only on train data - 2017 and 2018
trained_model1 <- auto.arima(df_train[,"Y"],
xreg = xregvars_train,
trace = TRUE,
seasonal = FALSE,
stepwise = FALSE,
approximation = FALSE)
summary(trained_model1)
Best model: Regression with ARIMA(2,0,2) errors
Series: df_train[, "Y"]
Regression with ARIMA(2,0,2) errors
Coefficients:
ar1 ar2 ma1 ma2 xreg1 xreg2 xreg3 xreg4 xreg5 xreg6 xreg7 xreg8 xreg9
-0.0042 0.9010 -0.0196 -0.4570 -5e-04 -0.0510 -0.2588 2.4189 -1.1462 0.2989 0.3617 4e-04 5.1636
s.e. 0.0061 0.0061 0.0126 0.0127 2e-04 0.0776 0.0838 1.8556 0.7600 0.0269 0.0182 2e-04 0.0958
sigma^2 = 15.09: log likelihood = -24898.81
AIC=49825.63 AICc=49825.67 BIC=49925.05
Training set error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 0.001099617 3.881168 1.388604 NaN Inf 0.3068132 -0.003611257
# Select xreg variables for test
xregvars_test <- cbind(# here I combine 9 variables)
# Convert to matrix
xregvars_test <- matrix(as.numeric(xregvars_test), ncol = 9)
# Forecast
myforecasts <- forecast::forecast(trained_model1, xreg = xregvars_test, 1)
summary(myforecasts)
出于某些原因,它给我打印了相同的系数
Forecast method: Regression with ARIMA(2,0,2) errors
Model Information:
Series: df_train[, "Y"]
Regression with ARIMA(2,0,2) errors
Coefficients:
ar1 ar2 ma1 ma2 xreg1 xreg2 xreg3 xreg4 xreg5 xreg6 xreg7 xreg8 xreg9
-0.0042 0.9010 -0.0196 -0.4570 -5e-04 -0.0510 -0.2588 2.4189 -1.1462 0.2989 0.3617 4e-04 5.1636
s.e. 0.0061 0.0061 0.0126 0.0127 2e-04 0.0776 0.0838 1.8556 0.7600 0.0269 0.0182 2e-04 0.0958
sigma^2 = 15.09: log likelihood = -24898.81
AIC=49825.63 AICc=49825.67 BIC=49925.05
Error measures:
ME RMSE MAE MPE MAPE MASE ACF1
Training set 0.001099617 3.881168 1.388604 NaN Inf 0.3068132 -0.003611257
Forecasts:
我得到了价值观:
Description:df [4,486 x 5]
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
8973 7.61958386 2.642059677 12.597108 0.00711754 15.23205
8974 45.13170539 40.152777288 50.110633 37.51709196 52.74632
8975 19.75824133 14.310610280 25.205872 11.42680860 28.08967
8976 13.18712620 7.738266115 18.635986 4.85381383 21.52044
8977 26.42824374 20.626598045 32.229889 17.55539233 35.30110
-
我的方法正确吗?我不确定,因为我的rmse是一样的?
-
是我的吗
Point Forecast
2019年的预测值?如果是的话,我可以导出它们并计算RMSE测试,有实际的和预测的吗?
Thnaks!