Metadata-Version: 2.1 Name: pmdarima Version: 2.0.4 Summary: Python's forecast::auto.arima equivalent Home-page: http://alkaline-ml.com/pmdarima Download-URL: https://pypi.org/project/pmdarima/#files Maintainer: Taylor G. Smith Maintainer-email: taylor.smith@alkaline-ml.com License: MIT Project-URL: Bug Tracker, https://github.com/alkaline-ml/pmdarima/issues Project-URL: Documentation, http://alkaline-ml.com/pmdarima Project-URL: Source Code, https://github.com/alkaline-ml/pmdarima Keywords: arima timeseries forecasting pyramid pmdarima pyramid-arima scikit-learn statsmodels Classifier: Intended Audience :: Science/Research Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Financial and Insurance Industry Classifier: Programming Language :: C Classifier: Programming Language :: Python Classifier: Topic :: Software Development Classifier: Topic :: Scientific/Engineering Classifier: Operating System :: Microsoft :: Windows Classifier: Operating System :: POSIX Classifier: Operating System :: Unix Classifier: Operating System :: MacOS Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: Implementation :: CPython Requires-Python: >=3.7 Description-Content-Type: text/markdown License-File: LICENSE License-File: AUTHORS.md Requires-Dist: joblib >=0.11 Requires-Dist: Cython !=0.29.18,!=0.29.31,>=0.29 Requires-Dist: numpy >=1.21.2 Requires-Dist: pandas >=0.19 Requires-Dist: scikit-learn >=0.22 Requires-Dist: scipy >=1.3.2 Requires-Dist: statsmodels >=0.13.2 Requires-Dist: urllib3 Requires-Dist: setuptools !=50.0.0,>=38.6.0 Requires-Dist: packaging >=17.1 # pmdarima [![PyPI version](https://badge.fury.io/py/pmdarima.svg)](https://badge.fury.io/py/pmdarima) [![CircleCI](https://circleci.com/gh/alkaline-ml/pmdarima.svg?style=svg)](https://circleci.com/gh/alkaline-ml/pmdarima) [![Github Actions Status](https://github.com/alkaline-ml/pmdarima/workflows/Mac%20and%20Windows%20Builds/badge.svg?branch=master)](https://github.com/alkaline-ml/pmdarima/actions?query=workflow%3A%22Mac+and+Windows+Builds%22+branch%3Amaster) [![codecov](https://codecov.io/gh/alkaline-ml/pmdarima/branch/master/graph/badge.svg)](https://codecov.io/gh/alkaline-ml/pmdarima) ![Supported versions](https://img.shields.io/badge/python-3.7+-blue.svg) ![Downloads](https://img.shields.io/badge/dynamic/json?color=blue&label=downloads&query=%24.total&url=https%3A%2F%2Fstore.zapier.com%2Fapi%2Frecords%3Fsecret%3D1e061b29db6c4f15af01103d403b0237) ![Downloads/Week](https://img.shields.io/badge/dynamic/json?color=blue&label=downloads%2Fweek&query=%24.weekly&url=https%3A%2F%2Fstore.zapier.com%2Fapi%2Frecords%3Fsecret%3D1e061b29db6c4f15af01103d403b0237) Pmdarima (originally `pyramid-arima`, for the anagram of 'py' + 'arima') is a statistical library designed to fill the void in Python's time series analysis capabilities. This includes: * The equivalent of R's [`auto.arima`](https://www.rdocumentation.org/packages/forecast/versions/7.3/topics/auto.arima) functionality * A collection of statistical tests of stationarity and seasonality * Time series utilities, such as differencing and inverse differencing * Numerous endogenous and exogenous transformers and featurizers, including Box-Cox and Fourier transformations * Seasonal time series decompositions * Cross-validation utilities * A rich collection of built-in time series datasets for prototyping and examples * Scikit-learn-esque pipelines to consolidate your estimators and promote productionization Pmdarima wraps [statsmodels](https://github.com/statsmodels/statsmodels/blob/master/statsmodels) under the hood, but is designed with an interface that's familiar to users coming from a scikit-learn background. ## Installation ### pip Pmdarima has binary and source distributions for Windows, Mac and Linux (`manylinux`) on pypi under the package name `pmdarima` and can be downloaded via `pip`: ```bash pip install pmdarima ``` ### conda Pmdarima also has Mac and Linux builds available via `conda` and can be installed like so: ```bash conda config --add channels conda-forge conda config --set channel_priority strict conda install pmdarima ``` **Note:** We do not maintain our own Conda binaries, they are maintained at https://github.com/conda-forge/pmdarima-feedstock. See that repo for further documentation on working with Pmdarima on Conda. ## Quickstart Examples Fitting a simple auto-ARIMA on the [`wineind`](https://alkaline-ml.com/pmdarima/modules/generated/pmdarima.datasets.load_wineind.html#pmdarima.datasets.load_wineind) dataset: ```python import pmdarima as pm from pmdarima.model_selection import train_test_split import numpy as np import matplotlib.pyplot as plt # Load/split your data y = pm.datasets.load_wineind() train, test = train_test_split(y, train_size=150) # Fit your model model = pm.auto_arima(train, seasonal=True, m=12) # make your forecasts forecasts = model.predict(test.shape[0]) # predict N steps into the future # Visualize the forecasts (blue=train, green=forecasts) x = np.arange(y.shape[0]) plt.plot(x[:150], train, c='blue') plt.plot(x[150:], forecasts, c='green') plt.show() ``` Wineind example Fitting a more complex pipeline on the [`sunspots`](https://www.rdocumentation.org/packages/datasets/versions/3.6.1/topics/sunspots) dataset, serializing it, and then loading it from disk to make predictions: ```python import pmdarima as pm from pmdarima.model_selection import train_test_split from pmdarima.pipeline import Pipeline from pmdarima.preprocessing import BoxCoxEndogTransformer import pickle # Load/split your data y = pm.datasets.load_sunspots() train, test = train_test_split(y, train_size=2700) # Define and fit your pipeline pipeline = Pipeline([ ('boxcox', BoxCoxEndogTransformer(lmbda2=1e-6)), # lmbda2 avoids negative values ('arima', pm.AutoARIMA(seasonal=True, m=12, suppress_warnings=True, trace=True)) ]) pipeline.fit(train) # Serialize your model just like you would in scikit: with open('model.pkl', 'wb') as pkl: pickle.dump(pipeline, pkl) # Load it and make predictions seamlessly: with open('model.pkl', 'rb') as pkl: mod = pickle.load(pkl) print(mod.predict(15)) # [25.20580375 25.05573898 24.4263037 23.56766793 22.67463049 21.82231043 # 21.04061069 20.33693017 19.70906027 19.1509862 18.6555793 18.21577243 # 17.8250318 17.47750614 17.16803394] ``` ### Availability `pmdarima` is available on PyPi in pre-built Wheel files for Python 3.7+ for the following platforms: * Mac (64-bit) * Linux (64-bit manylinux) * Windows (64-bit) * 32-bit wheels are available for pmdarima versions below 2.0.0 and Python versions below 3.10 If a wheel doesn't exist for your platform, you can still `pip install` and it will build from the source distribution tarball, however you'll need `cython>=0.29` and `gcc` (Mac/Linux) or `MinGW` (Windows) in order to build the package from source. Note that legacy versions (<1.0.0) are available under the name "`pyramid-arima`" and can be pip installed via: ```bash # Legacy warning: $ pip install pyramid-arima # python -c 'import pyramid;' ``` However, this is not recommended. ## Documentation All of your questions and more (including examples and guides) can be answered by the [`pmdarima` documentation](https://www.alkaline-ml.com/pmdarima). If not, always feel free to file an issue.