// the find
alkaline-ml/pmdarima
A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function.
pmdarima ports R's auto.arima to Python, wrapping statsmodels with a scikit-learn-compatible interface. It handles automatic ARIMA order selection via stepwise or exhaustive search, plus stationarity tests, seasonal decomposition, and sklearn-style pipelines. The target audience is data scientists and analysts who know ARIMA modeling but don't want to hand-tune (p,d,q) parameters.
The auto_arima search is genuinely useful — it runs ADF/KPSS stationarity tests, tries candidate orders, and selects by AIC/BIC, which is exactly what most practitioners do manually. The sklearn Pipeline integration means you can chain BoxCox transforms, Fourier featurizers, and the ARIMA model, then pickle the whole thing cleanly. The exogenous variable (SARIMAX) support is solid and works naturally with the pipeline abstraction. The Cython extensions for the inner solver loop are a real performance win on long grid searches.
It's a thin wrapper around statsmodels, so any statsmodels bug or API change becomes a pmdarima bug — and there have been several compatibility breaks in the past. The auto-search is still fundamentally a grid search; it's not Bayesian and can miss good models that aren't on the default grid. Activity has slowed down noticeably (last push November 2025, issues accumulate without responses), which matters if you depend on it for a production pipeline and statsmodels releases a breaking change. The SARIMAX handling for exogenous features at prediction time is a frequent pain point — you must supply future exog values manually and the error messages when you don't are unhelpful.