-
Notifications
You must be signed in to change notification settings - Fork 22
Persistence
title: Persistence (Smoothing Parameters) and phi
slug: Persistence
summary: The persistence parameter (alpha/beta/gamma/delta) and the phi damping parameter.
status: stable
applies_to: [adam, es, ces, gum]
related: [ADAM, Bounds, Initialisation]
This page documents the persistence parameter used in smooth models to control how quickly the model adapts to new observations. This parameter includes smoothing parameters for ETS, AR/MA elements for ARIMA and other parameters for CES/GUM.
| Field | Value |
|---|---|
| Argument name |
persistence (smoothing) plus phi (damping) |
| Type | R: named list. Python: dict (or scalar for single-parameter cases). |
| Valid keys |
alpha, beta, gamma (vector if multiple seasonalities), delta (vector with regressors="adapt"), xreg. For phi: a single float in (0, 1]. |
| Default |
NULL / None for both — fully estimated. Any key not supplied is estimated. |
| Applies to | R: adam, auto.adam, es, om, omg. Python: ADAM, AutoADAM, ES, OM, OMG. |
| Bounds interaction | Constraints depend on the bounds= argument — see Bounds. |
Persistence parameter controls how reactive the model is to the recently made errors. In ETS terminology, this is the vector that contains smoothing parameters denoted with the greek letters: alpha, beta, gamma (and delta for explanatory variables).
# R: Provide fixed persistence values
model <- adam(y, model="AAA", lags=12,
persistence=list(alpha=0.3, beta=0.1, gamma=0.05))# Python: Provide fixed persistence values
model = ADAM(model="AAA", lags=12,
persistence={"alpha": 0.3, "beta": 0.1, "gamma": 0.05})| Parameter | Greek | Component | Typical Range | Effect |
|---|---|---|---|---|
alpha |
α | Level | 0 to 1 | Higher = faster adaptation to level changes |
beta |
β | Trend | 0 to α | Higher = faster adaptation to trend changes |
gamma |
γ | Seasonal | 0 to 1-α | Higher = faster adaptation to seasonal changes |
delta |
δ | Regressors | 0 to 1 | Higher = faster adaptation of regressor coefficients |
In case of several seasonal components, gamma is substituted with a vector: gamma1, gamma2 etc. In case of explanatory variables with regressors="adapt", deltas are used, one per parameter for explanatory variable.
- alpha = 0: Level never updates (constant)
- alpha = 1: Level equals last observation (random walk)
- alpha = 0.3: Moderate adaptation, balances recent and historical
Recommended approach - specify only the parameters you want to fix. If some persistence values are provided and others are missing, the missing ones will be estimated:
# R: Fix alpha and gamma, estimate beta
model <- adam(y, model="AAA", lags=12,
persistence=list(alpha=0.3, gamma=0.1))
# R: Multiple seasonal components
model <- adam(y, model="AAA", lags=c(24, 168),
persistence=list(alpha=0.2, gamma=c(0.1, 0.05)))# Python: Fix alpha and gamma
model = ADAM(model="AAA", lags=12,
persistence={"alpha": 0.3, "gamma": 0.1})When using adaptive regressors (regressors="adapt"), delta parameters control how quickly regressor parameters change:
# R: Fix persistence for level, trend, seasonal, and regressors
model <- adam(data, model="AAN", formula=y ~ x1 + x2,
regressors="adapt",
persistence=list(
alpha=0.3,
beta=0.05,
xreg=c(0.1, 0.15) # deltas for x1 and x2
))In R, persistence can be provided as an unnamed vector in the order: level, trend, seasonal(s), xreg:
# R: Vector notation for AAdA[12] model
# Order: alpha, beta, gamma
model <- adam(y, model="AAdA", lags=12, persistence=c(0.3, 0.05, 0.1))model <- adam(y, model="AAA", lags=12)
# Named vector of all persistence values
model$persistencemodel = ADAM(model="AAA", lags=12)
model.fit(y)
# Individual persistence values
model.persistence_level_ # alpha
model.persistence_trend_ # beta
model.persistence_seasonal_ # gamma (list for multiple seasonalities)The bounds parameter affects the valid range for persistence values:
| Bounds | Level (α) | Trend (β) | Seasonal (γ) |
|---|---|---|---|
"usual" |
[0, 1] | [0, α] | [0, 1-α] |
"admissible" |
Stability region | Stability region | Stability region |
"none" |
Unrestricted | Unrestricted | Unrestricted |
See Bounds for details on stability conditions.
For models with multiple seasonal components, gamma can be a vector:
# R: Hourly data with daily (24) and weekly (168) seasonality
model <- adam(y, model="AAA", lags=c(24, 168),
persistence=list(
alpha=0.2,
beta=0.05,
gamma=c(0.15, 0.05) # daily gamma, weekly gamma
))# Python: same thing
model = ADAM(model="AAA", lags=[24, 168],
persistence={"alpha": 0.2, "beta": 0.05, "gamma": [0.15, 0.05]})Persistence vector is designed in all smooth functions, but defined explicitly only in ADAM and ES. For ARIMA models, it is formed as a sum of ARI and MA polynomials for specific lags. In CES, it is a linear combination of the elements of the complex smoothing parameters. In GUM, it is a vector, containing parameters that adapt each component of the model.
- Let the model estimate: In most cases, let the optimiser find the best persistence values
-
Use bounds: Use
bounds="usual"orbounds="admissible"to keep parameters reasonable - Fix for stability: If estimation produces extreme values, consider fixing some parameters
- Domain knowledge: Use fixed values when you have prior knowledge about adaptation speed
Also, consider using alternative Loss-Functions to regularise smoothing parameters. e.g. multistep losses or RIDGE/LASSO directly.
Parameter for ADAM or ES. The damping parameter phi (φ) controls trend dampening in models with "d" trend (Ad, Md):
# R: Fixed damping parameter
model <- adam(y, model="AAdA", lags=12, phi=0.95)
# R: Estimate phi (default when not specified)
model <- adam(y, model="AAdA", lags=12, phi=NULL)# Python: Fixed damping parameter
model = ADAM(model="AAdA", lags=12, phi=0.95)- phi = 1: No damping (equivalent to non-damped trend)
- phi = 0.95: Moderate damping
- phi = 0.8: Strong damping (trend quickly approaches zero)
- phi = 0: Trend component switched off
Typical range: 0.8 to 0.99
- Svetunkov, I. (2023). Forecasting and Analytics with the Augmented Dynamic Adaptive Model (ADAM). Chapters 4-7
- Hyndman, R.J., et al. (2008). Forecasting with Exponential Smoothing: The State Space Approach. Springer.
- ADAM - Main ADAM function
- Bounds - Parameter bounds and stability
- Initialisation - Initial state values
- Coefficients-and-Parameters - Extracting model parameters