-
Notifications
You must be signed in to change notification settings - Fork 22
Ivan Svetunkov edited this page Jan 30, 2026
·
10 revisions
ES (Exponential Smoothing) is a wrapper around ADAM that provides a simplified interface for pure ETS (Error-Trend-Seasonal) models without ARIMA components.
The ES class implements the classical taxonomy of 30 ETS models in Single Source of Error (SSOE) state-space form. It uses normal distribution for errors by default and provides automatic model selection.
See ADAM for more details.
All 30 ETS models are supported:
| Trend \ Seasonal | N (None) | A (Additive) | M (Multiplicative) |
|---|---|---|---|
| N (None) | ANN, MNN | ANA, MNA | ANM, MNM |
| A (Additive) | AAN, MAN | AAA, MAA | AAM, MAM |
| Ad (Additive Damped) | AAdN, MAdN | AAdA, MAdA | AAdM, MAdM |
| M (Multiplicative) | AMN, MMN | AMA, MMA | AMM, MMM |
| Md (Multiplicative Damped) | AMdN, MMdN | AMdA, MMdA | AMdM, MMdM |
See ADAM for more details.
from smooth import ES
import numpy as np
y = np.array([112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 118])
# Simple Exponential Smoothing
model = ES(model="ANN")
model.fit(y)
forecasts = model.predict(h=6)
# Holt-Winters with automatic selection
model = ES(model="ZXZ", lags=[12])
model.fit(y)
print(f"Selected model: {model.model_type_dict['model']}")
# Damped trend model
model = ES(model="AAdN")
model.fit(y)
print(f"Damping parameter: {model.phi_:.3f}")library(smooth)
# Simple Exponential Smoothing
model <- es(y, model="ANN")
# Automatic model selection
model <- es(y, model="ZZZ", lags=12)
# Holt-Winters additive
model <- es(AirPassengers, model="AAA", h=18, holdout=TRUE)
forecast(model, h=18)
# With holdout for validation
model <- es(y, model="ZXZ", h=12, holdout=TRUE)Note: Not yet supported in Python
# ETSX model
es(y, model="ZXZ", xreg=X)
# ETSX with regressors selection
es(y, model="ZXZ", xreg=X, regressors="select")| Parameter | Type (R) | Type (Python) | Default | Description |
|---|---|---|---|---|
model |
character/vector | str/List[str] | "ZXZ" | ETS model specification |
lags |
numeric vector | List[int]/None | frequency(y) |
Seasonal period(s) |
persistence |
list/vector | Dict[str, float]/None | NULL | Fixed smoothing parameters |
phi |
numeric | float/None | NULL | Damping parameter |
initial |
character/list | str/Dict/None | "backcasting" | Initialization method |
ic |
character | str | "AICc" | Information criterion |
loss |
character | str | "likelihood" | Loss function |
bounds |
character | str | "usual" | Parameter bounds |
h |
integer | int/None | 0 | Forecast horizon |
holdout |
logical | bool | FALSE | Use holdout validation |
| Element (R) | Element (Python) | Type (R) | Type (Python) | Description |
|---|---|---|---|---|
model |
model_type_dict['model'] |
character | str | Name of the fitted model |
persistence (alpha) |
persistence_level_ |
numeric | float | Level smoothing parameter (α) |
persistence (beta) |
persistence_trend_ |
numeric | float | Trend smoothing parameter (β) |
persistence (gamma) |
persistence_seasonal_ |
numeric | List[float] | Seasonal smoothing parameter(s) (γ) |
phi |
phi_ |
numeric | float | Damping parameter (φ) |
initial |
initial_states_ |
list | NDArray | Initial state values |
| - | model_type_dict |
- | Dict | Complete model specification |
| - | ic_selection |
- | float | Information criterion value |
states |
adam_created['mat_vt'] |
matrix | NDArray | State matrix |
fitted |
prepared_model['y_fitted'] |
vector | NDArray | Fitted values |
residuals |
prepared_model['residuals'] |
vector | NDArray | Residuals |
forecast |
predict() result |
vector | NDArray | Point forecasts |
See ADAM for complete list of fitted attributes.
ES is a simplified interface to ADAM with:
- No ARIMA components (
orders=NULL) - Normal distribution for errors (
distribution="dnorm") - Focus on pure ETS models
For models combining ETS and ARIMA, use ADAM directly.
- Svetunkov, I. (2023). Forecasting and Analytics with the Augmented Dynamic Adaptive Model (ADAM). Online book: https://openforecast.org/adam/
- Svetunkov, I. (2023). Smooth forecasting with the smooth package in R. arXiv:2301.01790
- Hyndman, R.J., et al. (2008). Forecasting with Exponential Smoothing: The State Space Approach. Springer.
- ADAM - Full ADAM model with ARIMA support
- CES - Complex Exponential Smoothing
- SMA - Simple Moving Average
- Model-Specification - Model string notation and selection
- Loss-Functions - Loss function options
- Initialisation - State initialization methods
- Persistence - Smoothing parameters
- Bounds - Parameter restrictions