Question 1: What are Smoothing Parameters in an ETS Model?
ETS stands for Error, Trend, Seasonality — a family of exponential smoothing models that generate forecasts by giving more weight to recent observations while still considering the entire history. The weights decline exponentially as you go further back in time.
The Four Smoothing Parameters
Symbol
Name
Component
Intuition
α (alpha)
Level Smoothing
Level (baseline)
How much do we trust the most recent observation for the baseline?
β (beta)
Trend Smoothing
Trend (slope)
How quickly does the slope/direction change each period?
γ (gamma)
Seasonal Smoothing
Seasonality
How much is the seasonal pattern allowed to shift or evolve?
φ (phi)
Damping
Trend Damping
Does the trend continue forever (φ=1) or gradually flatten out (φ<1)?
Key Points
All parameters are constrained between 0 and 1.
High values (close to 1): Model reacts quickly to changes — more responsive but more volatile.
Low values (close to 0): Model reacts slowly — smoother but may lag behind sudden changes.
# A tibble: 18 × 3
.model term estimate
<chr> <chr> <dbl>
1 Auto alpha 1.000
2 Auto beta 0.0219
3 Auto gamma 0.000105
4 Auto phi 0.977
5 Auto l[0] 24.4
6 Auto b[0] -0.575
7 Auto s[0] 0.940
8 Auto s[-1] 1.01
9 Auto s[-2] 1.11
10 Auto s[-3] 1.06
11 Auto s[-4] 1.03
12 Auto s[-5] 0.949
13 Auto s[-6] 1.01
14 Auto s[-7] 1.02
15 Auto s[-8] 0.992
16 Auto s[-9] 1.04
17 Auto s[-10] 0.939
18 Auto s[-11] 0.905
Reconciliation: Was Our Intuition Right?
SP500 Results:
Best model: ETS(A,A,N) — Holt’s Linear Method (additive error, additive trend, no seasonality)
α (alpha) = 1.0000 — Level adapts entirely to the latest observation (very HIGH, as predicted)
β (beta) = 0.0000 — The trend slope is set once and never updated (the initial slope ~21.5 index points/month captures the persistent uptrend)
No seasonality — Exactly as predicted
Verdict: Intuition was mostly correct. We correctly predicted high α and no seasonality. We expected medium-high β, but the model found β=0 because the upward trend is constant enough that updating the slope isn’t needed — the initial slope does the job. This is still a “strong trend” model; it just means the rate of growth was stable.
VIX Results:
Best model: ETS(A,N,N) — Simple Exponential Smoothing (exactly as predicted!)
α (alpha) = 1.0000 — The model takes the most recent value as the next forecast (random walk behavior)
No trend, no seasonality — Exactly as predicted
Verdict: Intuition was correct. α=1.0 means the VIX essentially follows a random walk — each period’s value is the best forecast for the next period. This aligns perfectly with the observed volatile, mean-reverting nature of the VIX.
# =============================================# VISUALIZATION: Fitted Values vs Actuals# =============================================# Get augmented (fitted) values for best modelsaug_sp500 <- fit_sp500 |>select(all_of(best_sp500_name)) |>augment()aug_vix <- fit_vix |>select(all_of(best_vix_name)) |>augment()p3 <-ggplot() +geom_line(data = aug_sp500, aes(x = month, y = SP500, color ="Actual"),linewidth =1, alpha =0.7) +geom_line(data = aug_sp500, aes(x = month, y = .fitted, color ="Fitted"),linewidth =0.8, linetype ="dashed") +scale_color_manual(values =c("Actual"="#2196F3", "Fitted"="red")) +labs(title =paste0("SP500: Best ETS Model = ", best_sp500_name),y ="Index Value", x ="Date", color ="") +theme_minimal() +theme(legend.position ="bottom")p4 <-ggplot() +geom_line(data = aug_vix, aes(x = month, y = VIX, color ="Actual"),linewidth =1, alpha =0.7) +geom_line(data = aug_vix, aes(x = month, y = .fitted, color ="Fitted"),linewidth =0.8, linetype ="dashed") +scale_color_manual(values =c("Actual"="#F44336", "Fitted"="blue")) +labs(title =paste0("VIX: Best ETS Model = ", best_vix_name),y ="VIX Level", x ="Date", color ="") +theme_minimal() +theme(legend.position ="bottom")fitted_plot <- p3 / p4fitted_plot