I am experimenting with auto_arima which gives a nice output of the best model to use for a time series prediction.
from pmdarima import auto_arima
stepwise_fit = auto_arima(hourly_avg['kW'], start_p=0, start_q=0,
max_p=2, max_q=2, m=4,
seasonal=False,
d=None, trace=True,
error_action='ignore', # we don't want to know if an order does not work
suppress_warnings=True, # we don't want convergence warnings
stepwise=True) # set to stepwise
stepwise_fit.summary()
Output:
Performing stepwise search to minimize aic
ARIMA(0,0,0)(0,0,0)[0] : AIC=778.328, Time=0.01 sec
ARIMA(1,0,0)(0,0,0)[0] : AIC=inf, Time=0.07 sec
ARIMA(0,0,1)(0,0,0)[0] : AIC=inf, Time=0.07 sec
ARIMA(1,0,1)(0,0,0)[0] : AIC=138.016, Time=0.12 sec
ARIMA(2,0,1)(0,0,0)[0] : AIC=135.913, Time=0.16 sec
ARIMA(2,0,0)(0,0,0)[0] : AIC=inf, Time=0.11 sec
ARIMA(2,0,2)(0,0,0)[0] : AIC=135.302, Time=0.27 sec
ARIMA(1,0,2)(0,0,0)[0] : AIC=138.299, Time=0.14 sec
ARIMA(2,0,2)(0,0,0)[0] intercept : AIC=121.020, Time=0.36 sec
ARIMA(1,0,2)(0,0,0)[0] intercept : AIC=123.032, Time=0.36 sec
ARIMA(2,0,1)(0,0,0)[0] intercept : AIC=119.824, Time=0.28 sec
ARIMA(1,0,1)(0,0,0)[0] intercept : AIC=125.968, Time=0.31 sec
ARIMA(2,0,0)(0,0,0)[0] intercept : AIC=118.512, Time=0.15 sec
ARIMA(1,0,0)(0,0,0)[0] intercept : AIC=130.956, Time=0.12 sec
Best model: ARIMA(2,0,0)(0,0,0)[0] intercept
Total fit time: 2.547 seconds
There's not alot of wisdom here which I apologize for but is it possible to assign a variable to the best fit model? OR does one have to manually select ARIMA(2,0,0)
from the output above to continue on with their time series prediction methods?
For example some variable like best_model = Best model: ARIMA(2,0,0)
what ever the best selection is...
Look at the documentation where they give an example:
model = pm.auto_arima(train, seasonal=False)
# make your forecasts
forecasts = model.predict(24) # predict N steps into the future