代码之家  ›  专栏  ›  技术社区  ›  Anakin Skywalker

带外部参照变量的预测R包1个时间段的Arima误差回归预测

  •  0
  • Anakin Skywalker  · 技术社区  · 4 年前

    我用这个 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!

    0 回复  |  直到 4 年前
    推荐文章