3. Quickstart

Since pmdarima is intended to replace R’s auto.arima, the interface is designed to be quick to learn and easy to use, even for R users making the switch. Common functions and tools are elevated to the top-level of the package:

import pmdarima as pm

# Create an array like you would in R
x = pm.c(1, 2, 3, 4, 5, 6, 7)

# Compute an auto-correlation like you would in R:
pm.acf(x)

# Plot an auto-correlation:
pm.plot_acf(x)

3.1. Auto-ARIMA example

Here’s a quick example of how we can fit an auto_arima with pmdarima:

import numpy as np
import pmdarima as pm
from pmdarima.datasets import load_wineind

# this is a dataset from R
wineind = load_wineind().astype(np.float64)

# fit stepwise auto-ARIMA
stepwise_fit = pm.auto_arima(wineind, start_p=1, start_q=1,
                             max_p=3, max_q=3, m=12,
                             start_P=0, seasonal=True,
                             d=1, D=1, trace=True,
                             error_action='ignore',  # don't want to know if an order does not work
                             suppress_warnings=True,  # don't want convergence warnings
                             stepwise=True)  # set to stepwise

It’s easy to examine your model fit results. Simply use the summary[1] method:

>>> stepwise_fit.summary()
<class 'statsmodels.iolib.summary.Summary'>
"""
                                      SARIMAX Results
============================================================================================
Dep. Variable:                                    y   No. Observations:                  176
Model:             SARIMAX(0, 1, 2)x(0, 1, [1], 12)   Log Likelihood               -1528.766
Date:                              Wed, 15 Jun 2022   AIC                           3065.533
Time:                                      12:38:14   BIC                           3077.908
Sample:                                           0   HQIC                          3070.557
                                              - 176
Covariance Type:                                opg
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
ma.L1         -0.5756      0.041    -13.952      0.000      -0.656      -0.495
ma.L2         -0.1065      0.048     -2.224      0.026      -0.200      -0.013
ma.S.L12      -0.3848      0.054     -7.156      0.000      -0.490      -0.279
sigma2      7.866e+06   7.01e+05     11.228      0.000    6.49e+06    9.24e+06
===================================================================================
Ljung-Box (L1) (Q):                   2.84   Jarque-Bera (JB):                18.05
Prob(Q):                              0.09   Prob(JB):                         0.00
Heteroskedasticity (H):               1.17   Skew:                            -0.55
Prob(H) (two-sided):                  0.56   Kurtosis:                         4.21
===================================================================================

Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).

[1] The summary output was generated using the following versions:

>>> import pmdarima as pm
>>> pm.show_versions()

System:
    python: 3.9.7 (default, Nov 10 2021, 08:50:17)  [Clang 13.0.0 (clang-1300.0.29.3)]
executable: /Users/asmith/venv/bin/python
   machine: macOS-11.6.6-x86_64-i386-64bit

Python dependencies:
        pip: 21.2.3
 setuptools: 57.4.0
    sklearn: 1.1.1
statsmodels: 0.13.2
      numpy: 1.22.4
      scipy: 1.8.1
     Cython: 0.29.30
     pandas: 1.4.2
     joblib: 1.1.0
   pmdarima: 1.8.5