Método Holt-Winters
El método Holt-Winters extiende el suavizado exponencial a series con tendencia y estacionalidad manteniendo tres componentes suavizados: nivel \(\ell_t\), tendencia \(b_t\) e índice estacional \(s_t\). Existe en variante aditiva y multiplicativa según cómo interactúa la estacionalidad con el nivel.
Holt-Winters aditivo
Se usa cuando las fluctuaciones estacionales son aproximadamente constantes en términos absolutos independientemente del nivel de la serie.
\[\ell_t = \alpha(y_t - s_{t-m}) + (1-\alpha)(\ell_{t-1} + b_{t-1})\]
\[b_t = \beta(\ell_t - \ell_{t-1}) + (1-\beta)b_{t-1}\]
\[s_t = \gamma(y_t - \ell_{t-1} - b_{t-1}) + (1-\gamma)s_{t-m}\]
\[\hat{y}_{t+h} = \ell_t + h \cdot b_t + s_{t+h-m}\]
donde \(m\) es la longitud de la estación y \(\alpha, \beta, \gamma \in (0,1)\) son los parámetros de suavizado para el nivel, la tendencia y la estacionalidad respectivamente. El índice estacional \(s_t\) se actualiza usando la desviación de \(y_t\) respecto al nivel de tendencia.
Holt-Winters multiplicativo
Se usa cuando las fluctuaciones estacionales crecen proporcionalmente con el nivel (p. ej., pasajeros aéreos, ventas minoristas que escalan con el volumen).
\[\ell_t = \alpha\frac{y_t}{s_{t-m}} + (1-\alpha)(\ell_{t-1} + b_{t-1})\]
\[b_t = \beta(\ell_t - \ell_{t-1}) + (1-\beta)b_{t-1}\]
\[s_t = \gamma\frac{y_t}{\ell_{t-1} + b_{t-1}} + (1-\gamma)s_{t-m}\]
\[\hat{y}_{t+h} = (\ell_t + h \cdot b_t) \cdot s_{t+h-m}\]
El modelo multiplicativo divide por el índice estacional en lugar de restarlo. Los índices estacionales fluctúan en torno a 1 (valores superiores a 1 indican periodos por encima de la media; inferiores a 1, por debajo). Los índices del modelo aditivo fluctúan en torno a 0.

El modelo aditivo (izquierda) predice oscilaciones estacionales de tamaño constante. El modelo multiplicativo (derecha) predice oscilaciones que crecen con el nivel, lo que se ajusta mejor al patrón histórico de los pasajeros aéreos.
Inicialización
Una inicialización adecuada es esencial: unos valores iniciales pobres pueden tardar muchos periodos en corregirse. El enfoque estándar:
Nivel \(\ell_m\): media de la primera estación completa: \[\ell_m = \frac{1}{m}\sum_{i=1}^m y_i\]
Tendencia \(b_m\): media de los cambios de la primera a la segunda estación: \[b_m = \frac{1}{m}\left(\frac{y_{m+1}-y_1}{m} + \frac{y_{m+2}-y_2}{m} + \cdots + \frac{y_{2m}-y_m}{m}\right)\]
Índices estacionales \(s_1, \ldots, s_m\) (aditivo): desviación de cada periodo respecto a la media de la primera estación: \[s_i = y_i - \ell_m, \quad i = 1, \ldots, m\]
Para el multiplicativo: \(s_i = y_i / \ell_m\).
En la práctica, HoltWinters() y ets() de R estiman los valores iniciales junto con los parámetros de suavizado minimizando la SSE.
Holt-Winters con tendencia amortiguada
Holt-Winters con tendencia lineal puede sobreestimar a horizontes largos: la tendencia se extrapola indefinidamente. La variante de tendencia amortiguada introduce un parámetro de amortiguamiento \(\phi \in (0,1)\) que aplana la tendencia con el tiempo:
\[\hat{y}_{t+h} = \ell_t + (\phi + \phi^2 + \cdots + \phi^h)b_t + s_{t+h-m}\]
Cuando \(h \to \infty\), la suma entre paréntesis converge a \(\phi/(1-\phi)\), por lo que la predicción se aproxima asintóticamente a un nivel constante. La tendencia amortiguada suele dar mejor rendimiento a horizontes medianos y largos que el Holt-Winters sin amortiguar.

La predicción sin amortiguar (rojo) extrapola la tendencia linealmente sin límite. La predicción amortiguada (verde) se aplana hacia un nivel constante, lo que suele ser más realista en horizontes más allá de 1 o 2 estaciones.
Elección entre aditivo y multiplicativo
| Criterio | Aditivo | Multiplicativo |
|---|---|---|
| Amplitud estacional | Constante en el tiempo | Crece con el nivel |
| Datos transformados en logaritmo | Cualquiera funciona | Aditivo sobre log ≡ multiplicativo sobre original |
| Posibles valores negativos | Sí | No (requiere \(y_t > 0\)) |
| Notación ETS | ETS(A,A,A) | ETS(M,A,M) o ETS(A,A,M) |
Una regla práctica: representa la serie y comprueba si las oscilaciones estacionales se ensanchan al crecer la serie. Si es así, usa el multiplicativo (o transforma con logaritmo y usa el aditivo).
⚠️ El modelo multiplicativo requiere datos estrictamente positivos
Holt-Winters multiplicativo divide entre \(s_{t-m}\) y \(\ell_{t-1} + b_{t-1}\), lo que exige que todos los valores sean estrictamente positivos. Si la serie contiene ceros o valores negativos (conteos con ceros, temperatura en Celsius), usa el modelo aditivo o transforma los datos.
Además, el modelo multiplicativo puede volverse inestable si el nivel se acerca a cero durante la recursión, produciendo índices estacionales explosivos.
Ajustar Holt-Winters en R
# R base
fit_add <- HoltWinters(y, seasonal = "additive")
fit_mult <- HoltWinters(y, seasonal = "multiplicative")
# Paquete forecast (recomendado: optimización automática de parámetros)
library(forecast)
fit <- hw(y, h = 24, seasonal = "multiplicative", damped = TRUE)
forecast(fit, h = 24)
# Marco ETS (selección automática del modelo)
fit_ets <- ets(y) # selecciona el mejor modelo ETS por AIC
summary(fit_ets) # muestra el modelo seleccionado, p. ej. ETS(M,Ad,M)
forecast(fit_ets, h = 24)
💡 Dejar que el AIC elija entre aditivo y multiplicativo
En lugar de elegir manualmente, ajusta ambos modelos y compara el AIC:
fit_a <- ets(y, model = "AAA") # aditivo
fit_m <- ets(y, model = "MAM") # multiplicativo (error mult. + estac.)
AIC(fit_a); AIC(fit_m)
O usa ets(y) que busca automáticamente. El modelo seleccionado se muestra como ETS(error, tendencia, estacionalidad), p. ej. ETS(M,Ad,M) significa error multiplicativo, tendencia aditiva amortiguada, estacionalidad multiplicativa.