-
Notifications
You must be signed in to change notification settings - Fork 21
Bounds
This page documents the bounds parameter used across smooth functions to control parameter restrictions during estimation.
Parameter bounds are discussed in Section 4.7, Section 5.4, Section 6.4 and Subsection 9.2.2 of Svetunkov (2023).
The bounds parameter specifies what restrictions to place on smoothing parameters and other model parameters during optimization.
# R: Usual bounds (default for ETS)
model <- adam(y, model="AAA", lags=12, bounds="usual")
# R: Admissible bounds (stability-focused)
model <- adam(y, model="AAA", lags=12, bounds="admissible")# Python: Usual bounds
model = ADAM(model="AAA", lags=12, bounds="usual")| Bounds | Description | Guarantees | Speed |
|---|---|---|---|
"usual" |
Traditional ETS restrictions | Averaging behavior | Fast |
"admissible" |
Stability-focused restrictions | Model stability | Medium |
"none" |
No restrictions | None (potentially unstable) | Fast |
The default for most functions. Restricts parameters to ensure the model behaves as an averaging/smoothing method:
For ETS (Error, Trend, Seasonal):
| Parameter | Restriction | Interpretation |
|---|---|---|
| α (alpha) | 0 ≤ α ≤ 1 | Level smoothing |
| β (beta) | 0 ≤ β ≤ α | Trend smoothing (cannot exceed level) |
| γ (gamma) | 0 ≤ γ ≤ 1-α | Seasonal smoothing |
| φ (phi) | 0 ≤ φ ≤ 1 | Damping parameter |
# R: Usual bounds
model <- adam(y, model="AAA", lags=12, bounds="usual")Guarantees model stability by ensuring the eigenvalues of the discount matrix are within the unit circle. The exact bounds depend on the model structure.
Key features:
- Ensures that the impact of initial observations diminishes with the increase of the sample size
- More flexible than usual bounds
- Allows negative smoothing parameters in some cases
- Default for ARIMA-based models (SSARIMA, MSARIMA)
# R: Admissible bounds (recommended for ARIMA)
model <- ssarima(y, orders=list(ar=1, i=1, ma=1), bounds="admissible")For ARIMA:
| Parameter | Restriction |
|---|---|
| AR coefficients | Stationarity region |
| MA coefficients | Invertibility region |
No restrictions are applied. Use with caution.
Warning: Models estimated with bounds="none" may be:
- Unstable/Non-invertible (numerical issues)
- Difficult to interpret
# R: No bounds (use carefully!)
model <- adam(y, model="AAA", lags=12, bounds="none")When to use:
- Research/experimentation
- When you know the optimal parameters lie outside usual bounds
- When other constraints prevent instability
| Model Type | Default Bounds | Recommended |
|---|---|---|
| Additive (ANN, AAN, AAA, etc.) | "usual" |
"usual" or "admissible"
|
| Multiplicative (MNN, MAN, etc.) | "usual" |
"usual" |
| Mixed (MAM, etc.) | "usual" |
"usual" |
| Model | Default Bounds | Recommended |
|---|---|---|
| SSARIMA | "admissible" |
"admissible" |
| MSARIMA | "admissible" |
"admissible" |
| ADAM with ARIMA |
"usual", but switched to "admissible" for ARIMA |
"admissible" |
| Model | Default Bounds | Notes |
|---|---|---|
| CES | "admissible" |
Complex parameter stability |
| GUM | "admissible" |
Transition matrix stability |
| SMA | N/A | No smoothing parameters |
| Function | "usual" |
"admissible" |
"none" |
|---|---|---|---|
| ADAM | Yes (default) | Yes | Yes |
| ES | Yes (default) | Yes | Yes |
| SSARIMA | Yes | Yes (default) | Yes |
| MSARIMA | Yes | Yes (default) | Yes |
| CES | Yes | Yes (default) | Yes |
| GUM | Yes | Yes (default) | Yes |
For fine-tuned control, you can pass lb (lower bound) and ub (upper bound) vectors via ...:
# R: Custom bounds for specific parameters
model <- adam(y, model="AAN", bounds="none",
B=c(0.3, 0.1, 100, 1), # Starting values
lb=c(0.1, 0, 50, 0), # Lower bounds
ub=c(0.5, 0.2, 150, 2)) # Upper boundsThe order of parameters in lb and ub follows:
- Smoothing parameters (α, β, γ, δ)
- Damping parameter (φ)
- ARMA parameters
- Initial states
- Parameters for explanatory variables
-
ETS models: Start with
bounds="usual"(default) -
ARIMA models: Use
bounds="admissible"for stability -
Multiplicative models:
bounds="usual"helps prevent extreme values -
Poor fit: If estimation produces boundary values, try
bounds="admissible" -
Research: Use
bounds="none"only when exploring parameter space
- Svetunkov, I. (2023). Forecasting and Analytics with the Augmented Dynamic Adaptive Model (ADAM). Online website: https://openforecast.org/adam/
- Hyndman, R.J., et al. (2008). Forecasting with Exponential Smoothing: The State Space Approach. Springer. Chapter 10 (Stability and Invertibility).
- ADAM - Main ADAM function
- Persistence - Smoothing parameters
- Orders-and-Lags - ARIMA order specification
- Loss-Functions - Loss function options