Exponential Smoothing (ETS) Parameters

Author

AS

Published

September 28, 2025

What is an ETS Model?

  • ETS stands for Error, Trend, Seasonality in fpp3

  • It is a family of exponential smoothing models.

Exponential Smoothing Models

Exponential Smoothing models generate forecasts by giving more weight to recent observations while still considering the whole history of the series.

  • “Exponential” = the weights applied to past observations decline exponentially as you go back in time.

  • “Smoothing” = we’re smoothing out random noise to extract the underlying level, trend, and seasonality of the series.

  • The four ETS smoothing parameters govern how the Exponential Smoothing models update their internal components based on new data. They are typically estimated from the data to maximize forecast accuracy.
Symbol Name Component Controlled Intuition
\(\alpha\) Alpha Level Trust in the most recent observation for the baseline.
\(\beta\) Beta Trend How much the slope/direction changes each period.
\(\gamma\) Gamma Seasonality How much the seasonal pattern is allowed to shift or evolve.
\(\phi\) Phi Damping Whether the trend continues forever (\(\phi=1\)) or gradually flattens out (\(\phi<1\)).
Level vs Trend Distinction
  1. Level is the baseline or average value of a series at a given time (the “height” where the series sits).
    Trend is the slope or direction of change in the level over time (upward, downward, or flat).
  2. Level answers “where are we now?” Trend answers “are we moving up, down, or staying steady?
Caution

The maximum number of smoothing parameters used in an ETS model is four (\(\alpha, \beta, \gamma, \phi\)), but simpler models use fewer.

  • Parameter Usage by Model - Not all ETS models utilize all four parameters. Simpler models only use the parameters corresponding to the components they include.
Model Name ETS Notation Parameters Used
Simple Exponential Smoothing \(\text{ETS}(\text{A,N,N})\) \(\alpha\)
Holt’s Linear Trend \(\text{ETS}(\text{A,A,N})\) \(\alpha\), \(\beta\)
Holt–Winters Seasonal \(\text{ETS}(\text{A,A,A})\) \(\alpha\), \(\beta\), \(\gamma\)
Damped Holt–Winters \(\text{ETS}(\text{A,A}_{\text{d}}\text{,A})\) \(\alpha\), \(\beta\), \(\gamma\), \(\phi\)
  • The core of Exponential Smoothing (ETS) models lies in the smoothing parameters/weights (\(\alpha\), \(\beta\), and \(\gamma\)), which governs how quickly the model updates the estimates.
    • All parameters are constrained to values between \(0\) and \(1\).
      • High values (close to 1): The model reacts quickly to recent changes, making it more responsive but potentially more volatile.
      • Low values (close to 0): The model reacts slowly, resulting in a smoother estimate that may lag behind sudden changes.
    • For \(\phi\), it’s also between 0 and 1, but it isn’t a “smoothing weight” in the same sense — it’s a trend dampening factor.
ETS Smoothing Parameters: Interpretation Guidelines

While there aren’t strict universal cutoffs, here are commonly used guidelines in practice for interpreting the smoothing parameters (\(\alpha\), \(\beta\), \(\gamma\)) and the damping parameter (\(\phi\)).

Parameter Function Low (Stable) Medium (Balanced) High (Responsive)
\(\alpha\) (Alpha) Level Smoothing 0.0 - 0.3 (Conservative) 0.3 - 0.7 0.7 - 1.0 (Adaptive)
\(\beta\) (Beta) Trend Smoothing

0.0 - 0.2

(Stable Trend)

0.2 - 0.5 0.5 - 1.0 (Responsive Trend)
\(\gamma\) (Gamma) Seasonal Smoothing

0.0 - 0.3

(Stable Seasonality)

0.3 - 0.6 0.6 - 1.0 (Responsive Seasonality)

\(\phi\) (Phi) — Damping Parameter

The \(\phi\) parameter controls whether the estimated trend slows down over the forecast horizon.

  • No damping: \(\phi = 1.0\) (Trend continues linearly forever)
  • Light damping: \(0.9 - 0.99\)
  • Moderate damping: \(0.8 - 0.9\)
  • Strong damping: \(0.5 - 0.8\)

Context-Dependent Cutoffs

The optimal parameter values often depend on the context and data frequency:

  • Academic Literature: Often uses \(0.5\) as the dividing line between “low” and “high.”
  • High-Frequency Data (Daily/Weekly): Values like \(\alpha > 0.9\) are considered “high” (very responsive).
  • Low-Frequency Data (Annual/Strategic): Values like \(\alpha > 0.3\) may be considered “high” (responsive).

Practical Rule of Thumb:

For most general business applications:

  • Low: \(< 0.3\)
  • Medium: \(0.3 - 0.7\)
  • High: \(> 0.7\)

Remember: These are guidelines, not hard rules. The “optimal” values are estimated from the data to minimize forecast errors.

Smoothing Parameters/Weights: Details

\(\alpha\) (Alpha) — Level Smoothing

The parameter \(\alpha\) controls how quickly the model updates the baseline level (\(\ell_t\)) of the time series.

  • High \(\alpha\) (closer to 1): The model reacts strongly to the most recent observation (\(y_t\)), making the estimated level more responsive but less smooth.
  • Low \(\alpha\) (closer to 0): The model reacts slowly, resulting in a smoother level estimate, but it may lag behind sudden changes.

Intuition: How much do we trust the most recent observation (\(y_t\)) for setting the current baseline?

Formula (Simple Exponential Smoothing):

\[\ell_t = \alpha y_t + (1 - \alpha) \ell_{t-1}\]

where \(\ell_t\) is the estimated level at time \(t\).


\(\beta\) (Beta) — Trend Smoothing

The parameter \(\beta\) controls how quickly the trend (slope, \(b_t\)) of the series is updated.

  • High \(\beta\): The trend estimate changes rapidly with new data.
  • Low \(\beta\): The trend changes more slowly, producing smoother and more stable slope estimates.

Intuition: How much do we update the slope (is the underlying trend changing fast)?

Formula (Holt’s Linear):

\[b_t = \beta(\ell_t - \ell_{t-1}) + (1 - \beta)b_{t-1}\]

where \(b_t\) is the estimated trend.


\(\gamma\) (Gamma) — Seasonality Smoothing

The parameter \(\gamma\) controls how quickly the seasonal component (\(s_t\)) is updated.

  • High \(\gamma\): The seasonal factors adapt quickly to new data, which is useful if the seasonal pattern is shifting over time.
  • Low \(\gamma\): The seasonal factors remain relatively stable across time.

Intuition: How much do we allow the seasonal pattern to shift or evolve?

Formula (Holt–Winters Additive):

\[s_t = \gamma (y_t - \ell_{t-1} - b_{t-1}) + (1 - \gamma)s_{t-m}\]

where \(s_t\) is the seasonal effect at time \(t\), and \(m\) is the seasonal period (e.g., \(m=12\) for monthly data).

Classic/Key ETS Models

While these components can be combined in different ways, leading to a variety of ETS models, only a handful are common enough to have acquired special, non-ETS names due to their frequent use and historical significance.

ETS Notation Model Name Error (E) Trend (T) Seasonality (S)
ETS(A,N,N) Simple Exponential Smoothing (SES) Additive (A) None (N) None (N)
ETS(A,A,N) Holt’s Linear Method Additive (A) Additive (A) None (N)
ETS(A,A,A) Holt–Winters Additive Seasonal Additive (A) Additive (A) Additive (A)

ETS Models in State Space Form (Additive Components)

Expressing an Exponential Smoothing (ETS) model in State Space Form provides a rigorous, unified mathematical structure, enabling advanced techniques like likelihood estimation and automatic model selection.

This formulation separates the process into two key components: the Forecast (Measurement) equation, which links the hidden states to the data, and the State (Transition) equations, which define how the hidden states evolve over time.


1. Forecast (Measurement) Equation

The observed value \(Y_t\) is defined as the sum of the predicted components from the previous time step plus a forecast error.

\[\hat{Y}_{t|t-1} = \ell_{t-1} + b_{t-1} + s_{t-m}\]

The actual observed value is:

\[Y_t = \ell_{t-1} + b_{t-1} + s_{t-m} + \varepsilon_t\]

Where:

  • \(Y_t\): The observed value at time \(t\).
  • \(\ell_{t-1}\): The previous Level (baseline).
  • \(b_{t-1}\): The previous Trend (slope).
  • \(s_{t-m}\): The Seasonal Component from one full cycle (\(m\) periods) ago.
  • \(\varepsilon_t\): The Forecast Error (or innovation), defined as \(\varepsilon_t = Y_t - \hat{Y}_{t|t-1}\).

2. State (Transition) Equations

These equations update the model’s internal components (\(\ell_t, b_t, s_t\)) by incorporating the new information provided by the latest forecast error, \(\varepsilon_t\).

The structure shown below corresponds to the additive error models (e.g., \(\text{ETS}(\text{A,A,A})\)).

Level Component (\(\ell_t\))

The new level is the old level plus a correction proportional to the error \(\varepsilon_t\):

\[\ell_t = \ell_{t-1} + \alpha \varepsilon_t\]

  • \(\alpha\) (Alpha): The smoothing parameter for the level.

Trend Component (\(b_t\))

Standard (Undamped) Trend (\(\text{T}=\text{A}\))

The new trend is the old trend plus a correction proportional to the error:

\[b_t = b_{t-1} + \beta \varepsilon_t\]

  • \(\beta\) (Beta): The smoothing parameter for the trend.

Damped Trend (\(\text{T}=\text{A}_{\text{d}}\))

The previous trend is first damped by \(\phi\), and then updated by the error term:

\[b_t = \phi b_{t-1} + \beta \varepsilon_t\]

  • \(\phi\) (Phi): The damping parameter. (\(\phi=1\) for undamped, \(0 < \phi < 1\) for damped).

Seasonal Component (\(s_t\))

The new seasonal component replaces the old one with a correction proportional to the error:

\[s_t = s_{t-m} + \gamma \varepsilon_t\]

  • \(\gamma\) (Gamma): The smoothing parameter for seasonality.
  • \(m\): The length of the seasonal cycle (e.g., \(m=12\) for monthly data).

Why State Space Form Matters

  1. Unified Framework: It provides a single, mathematically consistent way to represent all 30 ETS models, regardless of the combination of components.
  2. Model Estimation: It enables likelihood-based estimation, allowing smoothing parameters (\(\alpha, \beta, \gamma, \phi\)) to be found by maximizing the likelihood function of the forecast errors.
  3. Statistical Inference: It is essential for calculating reliable prediction intervals and performing model selection using criteria like AIC and BIC.

Application

We will import different time series, visualise it, identify the dominant patterns, fit an ETS model, and check the estimated parameters to see if they align with our expectations.

Set Up

Case 1: Random Walk / Pure Level (No Trend, No Seasonality)

# Simulate level-only data
set.seed(123)
level_data <- tibble(
  time = 1:50,
  value = 100 + cumsum(rnorm(n = 50, mean = 0, sd = 2))
) |> as_tsibble(index = time)

# Plot
level_data |> 
  ggplot(aes(x = time, y = value)) + 
  geom_line(size = 1) +
  labs(title = "Case 1: Pure Level Changes", 
       subtitle = "Random walk around mean - expect high α") +
  theme_minimal() -> case1
Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
case1

Would expect no seasonality (\(\gamma\) = 0) and no trend (\(\beta\) = 0). Level smoothing should be high (\(\alpha\) close to 1). Furthermore, level smoothing looks additve, not multiplicative (goes up and down by same amount {kind of know it from the data generation process where sd is 2}.

# Fit ETS
fit_level <- level_data |> model(ETS(value))
report(fit_level)
Series: value 
Model: ETS(A,N,N) 
  Smoothing parameters:
    alpha = 0.9998989 

  Initial states:
     l[0]
 98.88015

  sigma^2:  3.4791

     AIC     AICc      BIC 
261.8994 262.4212 267.6355 
tidy(fit_level)

Auto ETS selects ETS(A,N,N) with high α (additive), no β, no γ as expected.

Case 2: No Seasonality (strong Trend and increasing Level)

# Strong upward trend data
trend_data <- global_economy |> 
  filter(Country == "China", Year >= 1980) |> 
  select(Year, GDP) |>
  mutate(GDP_trillions = GDP / 1e12)

# Plot
trend_data |> 
  ggplot(aes(x = Year, y = GDP_trillions)) + 
  geom_line(size = 1) +
  labs(title = "Case 2: Strong Non-Linear Trend", 
       subtitle = "Consistent growth - expect high α, β",
       y = "GDP (Trillions USD)") +
  theme_minimal() -> case2

case2

Would expect strong trend (\(\beta\) high as slope is increasing rapidly) and high level adaptation (\(\alpha\) high as level increases over time). No seasonality (\(\gamma\) = 0).

# Fit ETS
fit_trend <-  trend_data |> model(ETS(GDP_trillions))
report(fit_trend)
Series: GDP_trillions 
Model: ETS(M,A,N) 
  Smoothing parameters:
    alpha = 0.9999 
    beta  = 0.9679319 

  Initial states:
      l[0]        b[0]
 0.1876217 0.001694121

  sigma^2:  0.007

      AIC      AICc       BIC 
-29.51823 -27.64323 -21.33030 
tidy(fit_trend)

Auto ETS selects trend model with high α and β as expected. No γ.

The model picked multiplicative error instead of additive. This means the forecast errors scale with the level (larger GDP → larger error band), which makes sense for GDP.

The trend component is additive (linear trend), but because α and β are both very high, the model is essentially tracking the steep growth closely.

Case 3: Seasonality (with increasing Level and stable Trend)

# Stable seasonal pattern
seasonal_data  <- aus_production |> 
  filter(Quarter >= yearquarter("1990 Q1"), Quarter <= yearquarter("2010 Q4")) |>
  select(Quarter, Electricity)

# Plot
seasonal_data |> 
  ggplot(aes(x = Quarter, y = Electricity)) + 
  geom_line(size = 1) +
  labs(title = "Case 3: Pure Seasonality", 
       subtitle = "Regular pattern, stable level - expect low α, high γ") +
  theme_minimal() -> case3
case3

Clear additive seasonality in the first half of the data (not multiplicative). Also, would expect level smoothing and trend smoothing at a cursory glance.

# Fit ETS
fit_seasonal  <- seasonal_data |> model(ETS(Electricity))
report(fit_seasonal)
Series: Electricity 
Model: ETS(M,A,A) 
  Smoothing parameters:
    alpha = 0.3250347 
    beta  = 0.0001000219 
    gamma = 0.1380468 

  Initial states:
     l[0]     b[0]      s[0]    s[-1]     s[-2]     s[-3]
 38220.12 260.6592 -1057.735 1855.485 -24.95561 -772.7935

  sigma^2:  4e-04

     AIC     AICc      BIC 
1497.584 1500.084 1519.244 
tidy(fit_seasonal)

Auto ETS selects seasonal model with low γ as expected, as seasnality is pretty stable in the time series. Furthermore, seasoanlity is additive.

The positive trend is absorbed partly into the level (α) and the seasonal adjustment (γ). Also, ETS sometimes struggles when the “trend” is not perfectly linear — electricity usage rose but also had flattening in the 2000s, so the model may prefer a slowly adjusting level rather than a strong persistent trend.

Case 4: Linear Growth (increasing Level, stable Trend and no Dampening)

# Exponential growth that needs damping
explosive_data <- global_economy |> 
  filter(Country == "Australia", Year >= 1960, Year <= 1990) |> 
  select(Year, Population) |>
  mutate(Population_millions = Population / 1e6)

# Plot
explosive_data |> 
  ggplot(aes(x = Year, y = Population_millions)) + 
  geom_line(size = 1) +
  labs(title = "Case 4: Growth Requiring No Damping", 
       y = "Population (Millions)") +
  theme_minimal() -> case4
case4

Would expect no seasonality (\(\gamma\) will not be estimated), large level growth/adaptation and a stable trend. Both the latter terms seem additive and not multiplcative. There is clearly no dampening needed as the growth is linear.

# Fit ETS
fit_explosive <- explosive_data |> model(ETS(Population))
report(fit_explosive )
Series: Population 
Model: ETS(A,A,N) 
  Smoothing parameters:
    alpha = 0.9998999 
    beta  = 0.0001001627 

  Initial states:
     l[0]     b[0]
 10067190 228913.9

  sigma^2:  3887839126

     AIC     AICc      BIC 
796.6856 799.0856 803.8556 
tidy(fit_explosive )

As expected.

Case 5: Increasing Level, Dampening Trend, Multiplicative Seasonality,

# Seasonal amplitude changes with level
mult_seasonal <- aus_arrivals |> 
  filter(Origin == "Japan", Quarter >= yearquarter("1985 Q1")) |>
  select(Quarter, Arrivals)

# Plot
mult_seasonal |> 
  ggplot(aes(x = Quarter, y = Arrivals)) + 
  geom_line(size = 1) +
  labs(title = "Case 5: Multiplicative Seasonality", 
       subtitle = "Seasonal amplitude grows with level - expect multiplicative") +
  theme_minimal() -> case5
case5

Would expect multiplicative seasonal component where seasonal swings increase proportionally with the level.

# Fit ETS
fit_mult <-  mult_seasonal |> model(ETS(formula = Arrivals))
report(fit_mult )
Series: Arrivals 
Model: ETS(A,Ad,A) 
  Smoothing parameters:
    alpha = 0.4297394 
    beta  = 0.0203778 
    gamma = 0.1979133 
    phi   = 0.9707015 

  Initial states:
     l[0]     b[0]     s[0]    s[-1]     s[-2]   s[-3]
 18668.17 5292.242 4356.274 6160.736 -22554.31 12037.3

  sigma^2:  216523642

     AIC     AICc      BIC 
2663.818 2666.018 2690.914 
tidy(fit_mult )

Visuals suggested multiplicative seasonality, but automatic ETS chose additive seasonal based on likelihood/AIC. Shows why we test models rather than rely only on intuition.

\(\alpha = 0.43\) → moderate update of level \(\beta = 0.02\) → trend changes very slowly \(\gamma = 0.20\) → seasonal pattern adjusts moderately \(\phi = 0.97\) → damped trend (flattens long run)

ETS Model Selection: Auto ETS correctly identifies the dominant patterns and selects appropriate error/trend/seasonal components based on visual characteristics.

Conclusion

  • ETS models describe time series in terms of error, trend, and seasonality.

  • They can be written in state space form, which provides a systematic way to estimate, update, and forecast.

  • Parameters:

    • \(\alpha\): updates the level
    • \(\beta\): updates the trend
    • \(\gamma\): updates seasonality
    • \(\phi\): dampens the trend
  • All parameters act as weights on forecast errors, determining how responsive each component is to new data.

Appendix:

Four Alpha-Beta Interaction Cases

The black line is the actual noisy data with an underlying upward trend. Each colored line shows how different α-β combinations filter and smooth this data.

  • Red line (High-High): Closely follows all fluctuations, very reactive
  • Blue line (High-Low): Adapts to level changes but maintains smooth trend
  • Green line (Low-High): Smooth overall but trend slope adjusts
  • Purple line (Low-Low): Very smooth, ignores most noise

Key Insights

  • Case 1: Fitted line closely tracks all fluctuations (high responsiveness)
  • Case 2: Quick level adjustments but smooth trend (balanced approach)
  • Case 3: Smooth level with trend adaptations (uncommon but valid)
  • Case 4: Very smooth fitted line (conservative, stable)

Practical Applications:

  • High-High: Financial data, volatile markets
  • High-Low: Economic indicators with occasional shocks
  • Low-High: Climate data, gradual trend changes
  • Low-Low: Demographics, stable long-term processes