Yohou-Nixtla brings the power of Nixtla's forecasting ecosystem to Yohou, providing Yohou-compatible wrappers for statistical, machine learning, and deep learning time series models.
This integration enables you to use Nixtla's high-performance forecasters (StatsForecast, NeuralForecast) within Yohou's unified API for time series forecasting. All models work seamlessly with Yohou's features: polars DataFrames, panel data support, cross-validation, and hyperparameter search via GridSearchCV/RandomizedSearchCV.
- Statistical Models: AutoARIMA, AutoETS, AutoTheta, ARIMA, Holt-Winters, Naive, and more from StatsForecast, providing fast, production-ready statistical forecasters.
- Neural Models: NBEATS, NHITS, MLP, PatchTST, TimesNet from NeuralForecast, offering state-of-the-art deep learning architectures.
- Panel Data: Native support for multiple time series with
__column naming convention (e.g.,sales__store_1,sales__store_2). - Yohou Compatible: Full
fit/predict,get_params/set_params,clonecompatibility. Works with GridSearchCV, pipelines, and the Yohou ecosystem. - Polars Native: All data handling uses polars DataFrames for high-performance time series operations.
Note: Nixtla's MLForecast is not wrapped as Yohou already provides
PointReductionForecaster, which turns any scikit-learn regressor (Ridge, LightGBM, XGBoost, …) into a recursive multi-step forecaster with full support for feature transformers, target transformers, and panel data.
Install the Yohou-Nixtla package using pip:
pip install yohou_nixtlaor using uv:
uv pip install yohou_nixtlaor using conda:
conda install -c conda-forge yohou_nixtlaor using mamba:
mamba install -c conda-forge yohou_nixtlaor alternatively, add yohou_nixtla to your requirements.txt or pyproject.toml file.
Use AutoARIMA for automatic ARIMA model selection:
import polars as pl
from yohou_nixtla import AutoARIMAForecaster
# Load your time series data (must have a "time" column)
y = pl.DataFrame({
"time": pl.datetime_range(start="2020-01-01", end="2020-12-31", interval="1d", eager=True),
"sales": [100 + i * 0.5 + (i % 7) * 10 for i in range(366)],
})
# Fit and predict
forecaster = AutoARIMAForecaster(season_length=7)
forecaster.fit(y, forecasting_horizon=14)
y_pred = forecaster.predict()Neural models for complex patterns:
from yohou_nixtla import NHITSForecaster
forecaster = NHITSForecaster(input_size=30, max_steps=100)
forecaster.fit(y, forecasting_horizon=14)
y_pred = forecaster.predict()Forecast multiple time series simultaneously:
# Panel data with __ separator
y_panel = pl.DataFrame({
"time": pl.datetime_range(start="2020-01-01", end="2020-12-31", interval="1d", eager=True),
"sales__store_1": [...],
"sales__store_2": [...],
})
forecaster = AutoARIMAForecaster(season_length=7)
forecaster.fit(y_panel, forecasting_horizon=14)
y_pred = forecaster.predict() # Predictions for all storesFull documentation is available at https://yohou-nixtla.readthedocs.io/.
Interactive examples are available in the examples/ directory:
- Online: https://yohou-nixtla.readthedocs.io/en/latest/pages/examples/
- Locally: Run
marimo edit examples/hello.pyto open an interactive notebook
We welcome contributions, feedback, and questions:
- Report issues or request features: GitHub Issues
- Join the discussion: GitHub Discussions
- Contributing Guide: CONTRIBUTING.md
If you are interested in becoming a maintainer or taking a more active role, please reach out to Guillaume Tauzin on GitHub Discussions.
Here are the main Yohou-Nixtla resources:
- Full documentation: https://yohou-nixtla.readthedocs.io/
- GitHub Discussions: https://github.com/stateful-y/yohou-nixtla/discussions
- Interactive Examples: https://yohou-nixtla.readthedocs.io/en/latest/pages/examples/
For questions and discussions, you can also open a discussion.
This project is licensed under the terms of the Apache-2.0 License.