0
$\begingroup$

I am running auto.arima on part of a time series (training data) using all possible combinations for several external regressors. I then choose the top 5 models according to fit to testing data using RMSE. In some cases, chosen models estimate ARIMA or xreg coefficients equal to zero. Why are these models chosen? Wouldn't coefficients = 0 essentially cancel out that term in the regression equation? How can I avoid this behavior?

Example output for two models below... also, the s.e. = 0 in some cases and NaN in others.

I have started running auto.arima(... stepwise = FALSE, aproximation = FALSE), but that takes 5-10x longer, and I'm not sure if it fixes the behavior (sorry, not all models have finished running).

[[2]]
Series: train[, y] 
Regression with ARIMA(1,0,1)(0,0,2)[12] errors 
Box Cox transformation: lambda= -0.9010564 

Coefficients:
         ar1      ma1    sma1    sma2  intercept  car_prod  crude_oil  fx_USD_buy  gdp
      0.9478  -0.6806  0.4932  0.5201     1.1098         0          0           0    0
s.e.     NaN   0.0029     NaN     NaN     0.0001         0          0           0    0

sigma^2 estimated as 2.538e-14:  log likelihood=1124.07
AIC=-2228.14   AICc=-2224.9   BIC=-2204.45

[[3]]
Series: train[, y] 
Regression with ARIMA(1,0,1)(0,0,2)[12] errors 
Box Cox transformation: lambda= -0.9010564 

Coefficients:
         ar1      ma1    sma1    sma2  intercept  gdp  import_trade_balance  unemployment
      0.9467  -0.6344  0.3925  0.4753     1.1098    0                     0             0
s.e.     NaN   0.0024     NaN     NaN        NaN  NaN                   NaN           NaN

sigma^2 estimated as 2.691e-14:  log likelihood=1122.11
AIC=-2226.23   AICc=-2223.62   BIC=-2204.9
$\endgroup$
  • $\begingroup$ That lambda value looks far too low for most real data. Why choose that value? Also, try reducing the scale of your covariates (e.g., divide by a million). $\endgroup$ – Rob Hyndman Aug 16 '19 at 6:59
  • $\begingroup$ I'm applying BoxCox.lambda() to my time series and passing that to the lambda term in auto.arima()... the lambda is chosen for me, in that sense. Regarding the covariate scale, should I normalize/scale/center the data? or just divide such that all my data are at a similar magnitude (my original time series too?) $\endgroup$ – seapen Aug 16 '19 at 14:20
  • $\begingroup$ Don't always trust automatic procedures. As I said, this does not look to me like a good choice for lambda. Covariates don't have to be on the same scale, but if you want to have a meaningful coefficient, avoid huge values of the covariate. $\endgroup$ – Rob Hyndman Aug 17 '19 at 11:18
  • $\begingroup$ Thank you Dr. Hyndman, I have scaled my covariates and looked into the BoxCox lambda issue. If I understand lambda correctly, a large negative value suggests a large increase in variance as the time series increases (positive trend in my ts). I re-implement outlier correction for a value that was not initially in the training set; data updates shifted it to the training set where it affected the BoxCox transformation. I am getting meaningful ARIMA and covariate coefficients again, which are now easier to interpret thanks to being on comparable scales. Thank you once more. $\endgroup$ – seapen Aug 19 '19 at 15:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.