skillfed

pmdarima

Python's forecast::auto.arima equivalent

pmdarima v2.1.1 3.3M downloads/30d#2,672 on PyPI1,733
Permissive license MIT AGING released

What it is and what it does

Pmdarima is a statistical library that brings R's auto.arima forecasting capability to Python with a scikit-learn-style API. It wraps statsmodels internally but presents a more accessible interface for developers familiar with scikit-learn's estimator and pipeline patterns. The package includes automated ARIMA order selection, stationarity and seasonality tests, time series transformations (Box-Cox, Fourier), seasonal decomposition, cross-validation utilities, and built-in datasets for prototyping.

You use it to fit forecasting models on historical time series data and generate predictions for future periods. It supports both simple auto-ARIMA calls and complex preprocessing pipelines with multiple transformers. The library targets financial, insurance, and research domains where time series forecasting is central. Its main dependencies—numpy, pandas, scikit-learn, scipy, statsmodels—are standard in the data science ecosystem, making it a natural fit for projects already using those tools.

Use it for:

  • Automatically select optimal ARIMA parameters and fit a forecasting model without manual hyperparameter tuning.
  • Build a preprocessing pipeline combining Box-Cox transformation with seasonal ARIMA for improved forecast accuracy.
  • Serialize and deploy a fitted time series model to production using pickle, then load and predict on new data.
  • Detect and handle seasonality in sales, demand, or financial data using seasonal decomposition and m-parameter tuning.
  • Perform cross-validation on time series splits to evaluate model generalization before deployment.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Pmdarima provides automated ARIMA time series forecasting with a scikit-learn-compatible interface, wrapping statsmodels to deliver R's auto.arima functionality in Python.

Yes, if you need automated ARIMA forecasting with scikit-learn integration. The package is mature, well-maintained, MIT-licensed, and widely downloaded (top 5000 PyPI). Install friction is moderate due to multiple dependencies and potential C compilation, but prebuilt wheels for Python 3.10+ on major platforms mitigate this. No known security vulnerabilities. Suitable for production time series work in finance, insurance, and research.

Install

pmdarima on PyPI

pip

pip install pmdarima

uv

uv add pmdarima

poetry

poetry add pmdarima

Installing pmdarima

Before you install

Medium install friction due to 10 runtime dependencies including Cython, numpy, pandas, scikit-learn, scipy, and statsmodels. The package is aging (270 days since last release) but maintains an active repository with 1733 stars and recent commits. Prebuilt wheels available for Python 3.10–3.13 on major platforms reduce compilation burden.

License in practice

Licensed under MIT (permissive), allowing use in commercial and proprietary projects without restriction, though attribution is customary.

Quickstart

pip install pmdarima

import pmdarima as pm
from pmdarima.model_selection import train_test_split

y = pm.datasets.load_wineind()
train, test = train_test_split(y, train_size=150)
model = pm.auto_arima(train, seasonal=True, m=12)
forecasts = model.predict(test.shape[0])

Requires Python 3.10 or later. If a prebuilt wheel is unavailable for your platform, building from source requires Cython >= 0.29 and a C compiler (gcc/Clang on Mac/Linux, MinGW on Windows).

Verify before relying

  • Whether the package's aging status (270 days since release) reflects maintenance slowdown or stable maturity.
  • Performance characteristics on large datasets or high-frequency time series.
  • Compatibility of serialized models across pmdarima versions when using pickle.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies 10 — joblib, Cython, numpy, pandas, scikit-learn, scipy, statsmodels, urllib3, setuptools, packaging
Maintenance aging — 270 days since the last release
Last repo commit
First released
Downloads 3,290,471/month — #2,672 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pmdarima-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl; pmdarima-2.1.1-cp310-cp310-macosx_11_0_arm64.whl; pmdarima-2.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pmdarima-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pmdarima-2.1.1-cp310-cp310-win_amd64.whl; pmdarima-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl; pmdarima-2.1.1-cp311-cp311-macosx_11_0_arm64.whl; pmdarima-2.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pmdarima-2.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pmdarima-2.1.1-cp311-cp311-win_amd64.whl; pmdarima-2.1.1-cp312-cp312-macosx_10_13_x86_64.whl; pmdarima-2.1.1-cp312-cp312-macosx_11_0_arm64.whl; pmdarima-2.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pmdarima-2.1.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pmdarima-2.1.1-cp312-cp312-win_amd64.whl; pmdarima-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl; pmdarima-2.1.1-cp313-cp313-macosx_11_0_arm64.whl; pmdarima-2.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; pmdarima-2.1.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; pmdarima-2.1.1-cp313-cp313-win_amd64.whl

Keywords: arima, timeseries, forecasting, pyramid, pmdarima, pyramid-arima, scikit-learn, statsmodels

Intended Audience :: DevelopersIntended Audience :: Financial and Insurance IndustryIntended Audience :: Science/ResearchOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: UnixProgramming Language :: CProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: Implementation :: CPythonTopic :: Scientific/EngineeringTopic :: Software Development

Tags

time series forecastingauto arima pythonarima model selectionseasonal time seriesautomated forecastingtime series decompositionarima pipeline
time-series-forecastingarimascikit-learn-compatible

More Software Development packages