Auto ARIMA in Python

Auto ARIMA in Python

  1. Auto ARIMA in Python
  2. Use the auto_arima() Function in Python
  3. Conclusion

In this article, we will learn about Auto ARIMA in Python and how it works.

Auto ARIMA in Python

The auto_arima() function from the pmdarima library assists in determining the ARIMA model’s optimum parameters and provides a fitted ARIMA model as a result.

Take note that this package was once called "Pyramid" before being renamed "pmdarima". Ensure that the "pmdarima" package is being installed.

If you don’t have the package, install it by running the below command in the terminal.

pip install pmdarima

Use the following command to test see whether the package was created successfully.

from pmdarima.arima import auto_arima

Use the auto_arima() Function in Python

In the following code, the data.csv is a CSV file containing the data and is used for Auto ARIMA. The output will be dataframe with a value with order=(P,D,Q) in index p and q.

Code Example:

import pmdarima as pm
import pandas as pd

df1 = pd.read_csv('data.csv', names=['value'], header=0)
model_1 = pm.auto_arima(df1.value, start_p=1, start_q=1,
                      test='adf',
                      max_p=3, max_q=3,
                      m=1,
                      d=None,
                      seasonal=False,
                      start_P=0,
                      D=0,
                      trace=True,
                      error_action='ignore',
                      suppress_warnings=True,
                      stepwise=True)

print(model_1.summary())

Output:

Performing stepwise search to minimize aic
 ARIMA(1,1,1)(0,0,0)[0] intercept   : AIC=1605.366, Time=0.09 sec
 ARIMA(0,1,0)(0,0,0)[0] intercept   : AIC=1660.860, Time=0.01 sec
 ARIMA(1,1,0)(0,0,0)[0] intercept   : AIC=1619.269, Time=0.04 sec
 ARIMA(0,1,1)(0,0,0)[0] intercept   : AIC=1604.209, Time=0.04 sec
 ARIMA(0,1,0)(0,0,0)[0]             : AIC=1658.968, Time=0.01 sec
 ARIMA(0,1,2)(0,0,0)[0] intercept   : AIC=1605.215, Time=0.08 sec
 ARIMA(1,1,2)(0,0,0)[0] intercept   : AIC=1606.845, Time=0.12 sec
 ARIMA(0,1,1)(0,0,0)[0]             : AIC=1603.295, Time=0.02 sec
 ARIMA(1,1,1)(0,0,0)[0]             : AIC=1604.373, Time=0.03 sec
 ARIMA(0,1,2)(0,0,0)[0]             : AIC=1604.196, Time=0.04 sec
 ARIMA(1,1,0)(0,0,0)[0]             : AIC=1617.588, Time=0.04 sec
 ARIMA(1,1,2)(0,0,0)[0]             : AIC=1605.883, Time=0.04 sec

Best model:  ARIMA(0,1,1)(0,0,0)[0]
Total fit time: 0.580 seconds
                               SARIMAX Results
==============================================================================
Dep. Variable:                      y   No. Observations:                  173
Model:               SARIMAX(0, 1, 1)   Log Likelihood                -799.648
Date:                Sat, 03 Sep 2022   AIC                           1603.295
Time:                        23:15:18   BIC                           1609.590
Sample:                             0   HQIC                          1605.849
                                - 173
Covariance Type:                  opg
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
ma.L1         -0.5856      0.056    -10.478      0.000      -0.695      -0.476
sigma2       637.6579     54.893     11.616      0.000     530.069     745.247
===================================================================================
Ljung-Box (L1) (Q):                   0.54   Jarque-Bera (JB):                24.81
Prob(Q):                              0.46   Prob(JB):                         0.00
Heteroskedasticity (H):               0.18   Skew:                             0.41
Prob(H) (two-sided):                  0.00   Kurtosis:                         4.67
===================================================================================

Process finished with exit code 0

Conclusion

The ARIMA model extensively estimates the stock performance over the next several days. The auto_arima() function of Python is used to identify the optimum parameters of the fitted ARIMA model.

The auto_arima() function can be imported from the Python library named pmdarima.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn