R:
Python:
Python wheels on PyPI ship with PEP 740 attestations — SLSA Build Level 3 provenance, signed via Sigstore on the GitHub Actions runner that built them. Verifiable client-side with pypi-attestations.
The smooth package implements Single Source of Error (SSOE) state-space models for forecasting and time series analysis, available for both R and Python.
Both the R and Python versions of smooth depend on the greybox package for distributions, information criteria, and supporting utilities (in Python this also provides the LOWESS smoother). It is installed automatically with smooth.
R (CRAN):
install.packages("smooth")R (github):
if (!require("remotes")) install.packages("remotes")
remotes::install_github("config-i1/smooth")Python (PyPI):
pip install smoothPython (github, dev):
pip install "git+https://github.com/config-i1/smooth.git@master#subdirectory=python"For development versions and system requirements, see the Installation wiki page.
library(smooth)
# ADAM - the recommended function for most tasks
model <- adam(y, model="ZXZ", lags=12)
forecast(model, h=12)
# Exponential Smoothing
model <- es(y, model="ZXZ", lags=12)
# Automatic model selection for ETS+ARIMA and distributions
model <- auto.adam(y, model="ZZZ",
orders=list(ar=2, i=2, ma=2, select=TRUE))from smooth import ADAM, ES
# ADAM model
model = ADAM(model="ZXZ", lags=12)
model.fit(y)
model.predict(h=12)
# Exponential Smoothing
model = ES(model="ZXZ")
model.fit(y)Full documentation is available on the GitHub Wiki, including:
- ADAM - Main unified ETS/ARIMA framework
- Function reference - All functions and methods
- Installation guide - Dependencies and troubleshooting
Book: Svetunkov, I. (2023). Forecasting and Analytics with the Augmented Dynamic Adaptive Model (ADAM). Chapman and Hall/CRC. Online: https://openforecast.org/adam/

