3. Pyramid Quickstart¶
Since pyramid 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 pyramid 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 pyramid:
import numpy as np
import pyramid as pm
from pyramid.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
method:
>>> stepwise_fit.summary()
<class 'statsmodels.iolib.summary.Summary'>
"""
Statespace Model Results
==========================================================================================
Dep. Variable: y No. Observations: 176
Model: SARIMAX(1, 1, 2)x(0, 1, 1, 12) Log Likelihood -1527.386
Date: Mon, 04 Sep 2017 AIC 3066.771
Time: 13:59:01 BIC 3085.794
Sample: 0 HQIC 3074.487
- 176
Covariance Type: opg
==============================================================================
coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------
intercept -100.7446 72.306 -1.393 0.164 -242.462 40.973
ar.L1 -0.5139 0.390 -1.319 0.187 -1.278 0.250
ma.L1 -0.0791 0.403 -0.196 0.844 -0.869 0.710
ma.L2 -0.4438 0.223 -1.988 0.047 -0.881 -0.006
ma.S.L12 -0.4021 0.054 -7.448 0.000 -0.508 -0.296
sigma2 7.663e+06 7.3e+05 10.500 0.000 6.23e+06 9.09e+06
===================================================================================
Ljung-Box (Q): 48.66 Jarque-Bera (JB): 21.62
Prob(Q): 0.16 Prob(JB): 0.00
Heteroskedasticity (H): 1.18 Skew: -0.61
Prob(H) (two-sided): 0.54 Kurtosis: 4.31
===================================================================================
Warnings:
[1] Covariance matrix calculated using the outer product of gradients (complex-step).
[2] Covariance matrix is singular or near-singular, with condition number 8.15e+14. Standard errors may be unstable.
"""