Modelos de Estacionalidad Determinística
Modelado global del patrón estacional con s−1 variables dummy o con series de Fourier (armónicos). Interpretación de efectos estacionales y periodograma.
¿Por qué modelar la estacionalidad?
Piensa en el consumo de energía eléctrica en Colombia. Es más alto en diciembre (iluminación navideña, fin de año) y más bajo en septiembre. Eso es estacionalidad: un patrón que se repite cada año. Si tienes un modelo de tendencia pero ignoras la estacionalidad, los residuos mostrarán el mismo ciclo cada año —estructura visible que el modelo no está aprovechando.
En este módulo aprenderás dos formas de modelar ese patrón: con variables indicadoras (dummies) —una por cada período del año— y con funciones trigonométricas (armónicos de Fourier). Son equivalentes cuando se usan todos los armónicos, pero las funciones trigonométricas permiten una representación más parsimoniosa cuando el patrón es suave.
3.1 Estacionalidad con variables indicadoras (dummies)
Cuando el patrón estacional es regular y se repite idénticamente de año en año, lo modelamos con un conjunto de variables binarias —una por cada período del año, excepto uno que sirve de referencia. Para una serie con periodo , se definen variables indicadoras:
La estación actúa como categoría de referencia. La componente estacional queda:
El modelo estacional completo (con nivel constante, sin tendencia) es:
donde es el nivel medio de la estación de referencia, y cada mide la desviación del nivel medio de la estación respecto a esa referencia. Al incorporar tendencia polinomial en el Módulo 4, queda absorbido en el intercepto .
¿Por qué s − 1 indicadoras y no s?
Incluir las indicadoras genera colinealidad perfecta con el intercepto (multicolinealidad exacta), pues para todo . Se omite una (la categoría de referencia) para que el sistema sea identificable. Todas las comparaciones se expresan entonces relativamente a esa categoría omitida.
La elección de la categoría de referencia no cambia el ajuste del modelo —el R², AIC y los residuos son idénticos— pero sí cambia la interpretación de los coeficientes. En R, seasonaldummy(yt) omite por defecto la última estación (diciembre para datos mensuales); en nuestros ejemplos usamos relevel() para fijar enero como referencia, que es la convención más intuitiva en un ciclo anual (la primera temporada como punto de comparación).
Interpretación de los coeficientes
Modelo aditivo
Diferencia absoluta en el nivel medio entre la estación i y la estación de referencia (enero). Si con datos de temperatura, julio es en promedio 14.2°F más cálido que enero.
Modelo multiplicativo (log)
Razón entre el nivel medio de la estación i y el de referencia. Si → la estación i tiene un nivel 35% mayor. Si → 12% menor.
3.2 Antes de modelar: tres gráficos diagnósticos
Antes de elegir el tipo de modelo estacional —aditivo o multiplicativo, dummies o Fourier— hay tres gráficos que deberías producir siempre. Juntos responden dos preguntas críticas: ¿la amplitud estacional es constante o crece con el nivel de la serie? ¿El patrón se repite fielmente año tras año o evoluciona?
Gráfico 1: Season plot
Cada año como línea independiente. Si las líneas recientes están muy por encima de las antiguas → amplitud creciente → modelo multiplicativo (usar log).
Gráfico 2: Subseries plot
Cada período en su propio panel vertical. La línea azul = promedio histórico del período. Si la secuencia de años sube dentro de cada panel → nivel del período crece → multiplicativo.
Gráfico 3: Boxplot por período
La altura de cada caja = dispersión a lo largo de los años. Cajas más grandes en los meses pico que en los valles → varianza heterogénea → multiplicativo.
Regla de decisión rápida
Si los tres gráficos coinciden en mostrar amplitud creciente → modelo multiplicativo: aplicar log() a la serie antes de ajustar. Si la amplitud es constante → modelo aditivo: trabajar con la serie original. Si los gráficos muestran señales mixtas, el AIC comparando ambos modelos es el árbitro final.
Los tres gráficos para AirPassengers confirman multiplicativo: season plot con líneas separándose, subseries con pendientes positivas en todos los meses, boxplot con cajas más grandes en los meses pico.
3.3 Ejemplo A — nottem: temperatura mensual de Nottingham
El dataset nottem (base R) registra la temperatura media mensual en grados Fahrenheit en Nottingham Castle, de enero de 1920 a diciembre de 1939 ( observaciones, ). No hay tendencia apreciable —el nivel medio es estable a lo largo de 20 años— por lo que el modelo es solo estacional con intercepto:
¿Qué vas a ver al ejecutar el código?
- El
summary(mod_est)con los 11 coeficientes para los meses de febrero a diciembre (enero = referencia). Todos deberían ser significativos. - Un gráfico de barras con los efectos estacionales: barras rojas (temperatura sobre enero) vs azules (bajo enero).
- La serie observada vs la curva ajustada: debería estar muy cerca dado que la estacionalidad explica >97% de la variación.
Con 11 indicadoras el modelo captura >97% de la variación de nottem. El intercepto es la temperatura media de enero (~39°F). Julio y agosto tendrán los δ̂ más positivos (~+14°F respecto a enero); diciembre y noviembre los más negativos (~−11°F). La línea ajustada debería seguir casi perfectamente la serie observada.
Cómo leer el summary() en un modelo estacional
El intercepto (Intercept) es el nivel medio de enero (la categoría de referencia). Cada coeficiente mesFeb, mesMar, …, mesDic es la diferencia media de temperatura de ese mes respecto a enero. Todos deberían aparecer con p-valor ≈ 0 (tres asteriscos) porque el patrón estacional de nottem es muy claro.
Si un coeficiente no es significativo (p-valor grande), significa que ese mes no difiere estadísticamente del mes de referencia —podría colapsarse con él para reducir el número de parámetros.
exp_delta: si el modelo estuviera en escala log, este sería el factor por el que se multiplica el nivel en la estación i respecto a la de referencia. En el modelo aditivo (nottem), delta_hat es directamente el efecto en °F.
3.3 Estacionalidad con funciones trigonométricas (armónicos)
Las variables dummy tienen una limitación: modelan cada estación de forma independiente, sin asumir suavidad entre períodos adyacentes. Enero puede ser muy diferente de febrero sin que el modelo "sepa" que son meses consecutivos. Cuando el patrón estacional es suave —como una ola que sube en verano y baja en invierno— las funciones trigonométricas (series de Fourier) ofrecen una representación más parsimoniosa:
donde son las frecuencias armónicas y es el número de armónicos a incluir. Cada armónico captura un ciclo a una frecuencia específica. Con se tiene la onda fundamental (período = s); con se añade el primer armónico (período = s/2), y así sucesivamente.
¿Cuántos armónicos usar? — Selección por periodograma
El periodograma descompone la potencia de la serie en cada frecuencia. Los armónicos con picos altos en el periodograma son los que más contribuyen al patrón estacional.
Procedimiento práctico:
- Diferencia la serie para remover la tendencia.
- Calcula el periodograma con
spec.pgram(). - Identifica los picos más altos: esas son las frecuencias a incluir.
- Empieza con los armónicos principales y usa AIC/BIC para confirmar si más armónicos mejoran el ajuste.
El periodograma
El periodograma estima la densidad espectral de potencia en cada frecuencia discreta . Para la serie , el valor en la frecuencia es:
Un pico en indica que la serie contiene un ciclo de período observaciones. En una serie mensual con ciclo anual, el pico dominante aparece en . Frecuencias son los armónicos superiores del ciclo anual.
El pico más alto debería estar en F ≈ 0.083 (período de 12 meses = ciclo anual). El segundo pico estará en F ≈ 0.167 (período de 6 meses = segundo armónico). Esas son las frecuencias que incluirás en Mytrigon().
3.4 Ejemplo B — USAccDeaths: dummies vs armónicos de Fourier
El dataset USAccDeaths (base R) contiene el número mensual de muertes accidentales en EE.UU. de 1973 a 1978 (, ). La serie tiene un pico claro en verano (julio) y un mínimo en invierno. Compararemos dos enfoques para modelar ese patrón: dummies (11 parámetros) y armónicos de Fourier (con solo 3 armónicos = 6 parámetros).
¿Qué vas a ver al ejecutar el código?
- Los AIC de los dos modelos: trigonométrico (k=3) y dummies (s-1=11). Si son similares, el modelo trigonométrico es mejor por parsimonia.
- Un gráfico con tres curvas: observado, ajuste trigonométrico y ajuste con dummies. Deberían ser casi indistinguibles para el patrón suave de USAccDeaths.
Si el AIC del modelo trigonométrico (k=3) es similar o menor al de dummies, el enfoque de Fourier es mejor: mismo ajuste con menos parámetros. Eso es parsimonia en acción.
Cómo interpretar la tabla de armónicos
Al probar k = 1, 2, 3, 4 armónicos, busca el punto donde el AIC deja de bajar significativamente. Para USAccDeaths, es típico que:
- k=1: captura la onda principal (verano alto, invierno bajo)
- k=2: añade detalle al inicio y fin del año
- k=3: ajuste muy cercano al de dummies con 6 parámetros vs 11
- k=4: el AIC casi no cambia → k=3 es suficiente
3.5 Comparación: dummies vs trigonométricas
Ambas aproximaciones son equivalentes cuando (el máximo de armónicos), pero las trigonométricas con pocos armónicos ofrecen mayor parsimonia. La elección depende de la naturaleza del patrón estacional:
| Aspecto | Indicadoras (dummies) | Trigonométricas | |---|---|---| | Número de parámetros | | (con ) | | Interpretación directa | ✓ Efecto de cada estación en sus unidades | ✗ No directa (amplitud y fase) | | Patrón suave | ✗ Discontinuo por estación | ✓ Continuo y diferenciable | | Cuándo elegir | Patrón irregular, efecto estacional sin suavidad | Patrón en forma de ola, variaciones suaves |
Error frecuente: usar dummies con series de alta frecuencia
Para datos semanales () o diarios (), el enfoque de dummies requiere 51 o 364 parámetros solo para la estacionalidad —computacionalmente costoso y estadísticamente ineficiente. En esos casos, las funciones trigonométricas con pocos armónicos son prácticamente la única opción razonable.
Figura 3.1 — Periodograma con picos en F = 1/12 (ciclo anual, primer armónico), F = 2/12 (semi-anual, segundo armónico) y F = 3/12 (cuatrimestral, tercer armónico). Incluir los tres primeros armónicos en Mytrigon() captura la mayor parte de la potencia estacional.
Conexión con el Módulo 4
Hasta aquí has modelado tendencia sola (Módulo 2) y estacionalidad sola (este módulo). En el Módulo 4 los combinarás en un único modelo que incluye ambas componentes simultáneamente: (o la versión multiplicativa en escala log). También aprenderás a comparar múltiples especificaciones con AIC/BIC y a aplicar la corrección de sesgo para pronósticos en escala original.