6 Estacionalidad, SARIMA y Ajuste Estacional
El Capítulo 5 terminó con un fracaso instructivo: al aplicar la metodología Box-Jenkins al \(\log(\text{IPC})\), el mejor ARIMA no estacional que pudo encontrar auto.arima() no superaba el contraste de Ljung-Box —quedaba autocorrelación sin explicar en los retardos 6 y 12—. Este capítulo resuelve ese fracaso: introduce la estacionalidad como componente formal del modelo, el modelo SARIMA que la incorpora, y el ajuste estacional —la extracción explícita de ese componente— mediante los procedimientos oficiales que usan los institutos de estadística.
6.1 La estacionalidad en series económicas
La estacionalidad es un patrón de fluctuación que se repite con periodicidad fija y conocida —doce meses, cuatro trimestres— ligada al calendario: rebajas de enero, consumo energético en invierno, turismo en verano, IVA de determinados bienes con estacionalidad de precios. A diferencia del componente irregular, no es ruido: es sistemática y, en principio, predecible. La Figura 6.1 muestra el IPC español por meses del año: el patrón de enero (rebajas, IPC más bajo) y de los meses de verano se repite con notable regularidad de un año a otro.
En el Capítulo 5, la FAC de \(\Delta\log(\text{IPC})\) mostraba picos marcados en los retardos 6 y 12 (ejercicio 1 de ese capítulo) que ningún ARIMA no estacional podía explicar. Ese es, exactamente, el rastro que deja la estacionalidad en el correlograma: dependencia lineal concentrada en los múltiplos del periodo estacional \(s\) (aquí, \(s=12\)).
6.2 Procesos estacionales puros
Un proceso estacional puro es un AR o un MA que opera únicamente sobre los retardos múltiplos de \(s\). Un \(\text{SAR}(P)_s\) se escribe \(\Phi(L^s)\,Y_t = \varepsilon_t\), con \(\Phi(L^s) = 1-\Phi_1L^s-\cdots-\Phi_PL^{Ps}\); un \(\text{SMA}(Q)_s\) se escribe \(Y_t = \Theta(L^s)\,\varepsilon_t\), con \(\Theta(L^s) = 1+\Theta_1L^s+\cdots+\Theta_QL^{Qs}\). Formalmente son AR y MA ordinarios en los que la variable de “tiempo” avanza de \(s\) en \(s\): toda la teoría de estacionariedad, invertibilidad y comportamiento de la FAC/FACP de los Capítulos 3-4 se aplica sin cambios, sustituyendo el retardo 1 por el retardo \(s\). La FAC de un \(\text{SMA}(Q)_s\) puro, por ejemplo, es nula salvo en \(k = s, 2s, \dots, Qs\).
En la práctica, un proceso estacional casi nunca aparece “puro”: conviene combinarlo con la estructura regular (de corto plazo) en un único modelo. Eso es precisamente un SARIMA.
6.3 Procesos SARIMA: el modelo multiplicativo
6.3.1 Notación ARIMA(p,d,q)(P,D,Q)[s]
El modelo SARIMA multiplicativo combina un ARIMA regular \((p,d,q)\) con un ARIMA estacional puro \((P,D,Q)_s\):
\[\phi(L)\,\Phi(L^s)\,(1-L)^d\,(1-L^s)^D\,Y_t = c + \theta(L)\,\Theta(L^s)\,\varepsilon_t.\]
\(d\) y \(D\) son, respectivamente, el número de diferencias regulares y estacionales necesarias para alcanzar la estacionariedad; \((p,q)\) capturan la dependencia de corto plazo (retardos próximos) y \((P,Q)\) la dependencia estacional (retardos múltiplos de \(s\)). El producto \(\phi(L)\Phi(L^s)\) —de ahí “multiplicativo”— permite que ambas estructuras interactúen con muy pocos parámetros: un \(\text{SARIMA}(0,1,1)(0,1,1)_{12}\) tiene solo dos coeficientes, pero genera, al expandir el producto, un MA de orden 13 con una estructura muy particular. Es, de hecho, el modelo más célebre de toda la literatura de series temporales: el “modelo airline” con el que Box y Jenkins (2015) modelizaron los pasajeros de líneas aéreas, y que sigue siendo hoy un punto de partida razonable para casi cualquier serie económica mensual.
6.3.2 Identificación estacional: FAC y FACP en retardos estacionales
El orden de diferenciación estacional \(D\) se decide, igual que \(d\) en el Capítulo 4, con contrastes formales; aquí usamos las heurísticas de forecast::nsdiffs(), que ofrece dos criterios de naturaleza distinta: el contraste OCSB (Osborn, Chui, Smith y Birchenhall, 1988), el análogo estacional del ADF del Capítulo 4 —contrasta si hace falta una raíz unitaria estacional mediante una regresión similar, pero centrada en el retardo \(s\)—, y un criterio heurístico más simple (test = "seas") que mide la fuerza del componente estacional a partir de una descomposición tipo STL (la misma herramienta del Capítulo 1): cuanto mayor sea la fracción de la varianza de la serie que explica la componente estacional frente al componente irregular, más recomienda diferenciar.
El contraste OCSB sugiere \(D=\) 0, mientras que el criterio basado en la fuerza de la componente estacional (test = "seas") sugiere \(D=\) 1: discrepan, algo no infrecuente en la práctica. Ante la duda, recurrimos al correlograma tras aplicar ambas diferencias, \(d=1\) y \(D=1\) (Figura 6.2): si \(D=1\) fuera excesivo, el correlograma resultante mostraría un patrón claramente sobrediferenciado (coeficientes negativos muy grandes en retardos bajos); si es adecuado, debería mostrar una estructura limpia y interpretable.
El resultado es claro y limpio: tras \((1-L)(1-L^{12})\), el único coeficiente que sobresale con claridad en la parte estacional es el del retardo 12 —negativo y grande—, firma de un \(\text{SMA}(1)_{12}\); en la parte regular hay algo de estructura en el retardo 1, compatible con un MA(1) regular. Optamos por \(D=1\): el modelo tentativo es un \(\text{SARIMA}(0,1,1)(0,1,1)_{12}\), el modelo airline.
6.3.3 Estimación y validación
| Parámetro | Estimación | Error típico |
|---|---|---|
| theta1 | 0.2810 | 0.0610 |
| Theta1 | -0.8093 | 0.0479 |
El modelo mejora radicalmente el ajuste no estacional del Capítulo 5 (AIC de -2306 frente a -2256,5 del mejor ARIMA no estacional), pero el diagnóstico de residuos todavía no es del todo satisfactorio: Ljung-Box a 12 retardos da \(Q=\) 28.02 (p 0.0018), y a 24 retardos, \(Q=\) 34.28 (p = 0.046): en ambos casos se rechaza la ausencia de autocorrelación, aunque por un margen mucho más estrecho que en el Capítulo 5. El modelo airline, con solo dos parámetros, capta la mayor parte de la estacionalidad pero no toda: es el propio ciclo de Box-Jenkins —identificar, estimar, validar, y volver a identificar si la validación falla— pidiendo una vuelta más.
| Modelo | AIC | LB(24) | p-valor |
|---|---|---|---|
| Airline: (0,1,1)(0,1,1)[12] | -2306.047 | 34.28 | 0.0460 |
| ARIMA(2,1,2)(0,1,1)[12] [auto.arima] | -2320.544 | 15.79 | 0.6711 |
Al ampliar la búsqueda a modelos con parte AR regular, auto.arima() encuentra un ARIMA(2,1,2)(0,1,1)[12] que mejora el AIC y, esta vez sí, supera la validación: Ljung-Box a 24 retardos da \(Q=\) 15.79 (p = 0.671), sin evidencia de autocorrelación residual. La secuencia completa —ARIMA no estacional (Cap. 5, falla) → SARIMA airline (mejora mucho, falla por poco) → SARIMA más rico (pasa)— es un ejemplo de libro del ciclo iterativo de Box-Jenkins en acción.
6.4 Ajuste estacional
6.4.1 Motivación: por qué ajustar estacionalmente
Modelizar la estacionalidad —como acabamos de hacer— no es lo mismo que eliminarla. Cuando un informe económico dice que “las ventas de diciembre subieron un 40% respecto a noviembre”, la cifra es casi inútil sin contexto: diciembre siempre sube por las compras navideñas. Lo relevante para el análisis coyuntural es la variación una vez descontado ese patrón previsible, para poder comparar el mes actual con el anterior sin el ruido del calendario. A esa serie sin componente estacional se la llama desestacionalizada o ajustada por estacionalidad, y es la que publican mensualmente los institutos de estadística junto a la serie original.
6.4.2 TRAMO-SEATS
TRAMO-SEATS (Time series Regression with ARIMA noise, Missing values and Outliers + Signal Extraction in ARIMA Time Series), desarrollado por Gómez y Maravall en el Banco de España, es el procedimiento de referencia en Europa (recomendado por Eurostat y el BCE). TRAMO preprocesa la serie —identifica automáticamente valores atípicos, cambios de nivel, y efectos calendario: por ejemplo, el efecto Semana Santa, que cae unos años en marzo y otros en abril, de modo que el gasto turístico o el consumo asociado se reparten de forma distinta entre esos dos meses según el año, contaminando la comparación mes a mes si no se corrige; o el efecto de días laborables, cuando un mes tiene más o menos días hábiles que el mismo mes de otro año— y ajusta un modelo ARIMA a la serie “limpia”; SEATS descompone después ese modelo ARIMA en sus componentes no observables (tendencia-ciclo, estacional, irregular) mediante un procedimiento basado enteramente en el modelo estimado, sin promedios móviles fijos.
6.4.3 X-13ARIMA-SEATS
X-13ARIMA-SEATS, del US Census Bureau, es el estándar equivalente en Estados Unidos (y el que usa, entre otros, el INE). Combina el histórico método X-11 —basado en una secuencia iterativa de medias móviles para extraer tendencia y estacionalidad— con el preprocesamiento regARIMA (equivalente al TRAMO europeo: un modelo ARIMA al que se añaden, como regresores adicionales, variables que capturan valores atípicos y efectos de calendario, de ahí el nombre “regresión + ARIMA”) y, opcionalmente, el propio motor SEATS como alternativa a X-11 para la descomposición final. En la práctica, TRAMO-SEATS y X-13ARIMA-SEATS producen resultados muy similares sobre la mayoría de series económicas.
6.4.4 Implementación con el paquete seasonal
El paquete seasonal ofrece una interfaz en R para el binario oficial de X-13ARIMA-SEATS del Census Bureau.
Una única llamada a seas(ipc_ts) selecciona automáticamente la transformación (logarítmica), identifica y corrige los valores atípicos y cambios de nivel, ajusta el modelo regARIMA, y descompone la serie. El modelo regARIMA seleccionado automáticamente es un \(\text{SARIMA}(0,1,1)(0,1,1)_{12}\) —el mismo modelo airline que identificamos a mano—, pero X-13 lo complementa con una regresión que detecta e incorpora explícitamente varios eventos: un efecto Semana Santa y varios valores atípicos y cambios de nivel en 2021-2022, que coinciden exactamente con la crisis energética europea y el consiguiente repunte de la inflación en España. Es precisamente esa regresión adicional —ausente en el SARIMA “a secas” de la sección anterior— la que explica por qué, pese a compartir la misma estructura ARIMA, el ajuste de X-13 resulta más limpio.
| Serie | QS | p-valor |
|---|---|---|
| Original | 221.9 | 0 |
| Desestacionalizada | 0.0 | 1 |
El contraste QS (Cuadro 6.3) es, en espíritu, un primo cercano del Ljung-Box del Capítulo 2: en lugar de combinar las autocorrelaciones de los primeros retardos consecutivos, combina específicamente las autocorrelaciones en los retardos estacionales (\(s\), \(2s\),…) para contrastar si queda estacionalidad sin explicar. Diseñado específicamente para detectar estacionalidad residual, es contundente: en la serie original se rechaza rotundamente la ausencia de estacionalidad (\(p<0{,}001\)); en la serie ajustada, no hay ningún indicio de estacionalidad residual (\(p=1\)). El ajuste ha cumplido su objetivo.
Los factores estacionales (Figura 6.4) son de magnitud modesta —del orden de medio punto porcentual— pero sistemáticos: enero y los meses de fin de año tienden ligeramente al alza; agosto, a la baja. Es exactamente el patrón de rebajas y estacionalidad turística que ya intuíamos en la Figura 6.1 al principio del capítulo, ahora cuantificado y depurado de ruido.
Estimar un SARIMA: En Gretl: Serie → Modelos de series temporales → ARIMA, activando la sección “Estacional” con sus propios órdenes \((P,D,Q)\) y el periodo \(s\). En R: forecast::Arima(y, order = c(p,d,q), seasonal = list(order = c(P,D,Q), period = s)).
Selección automática con estacionalidad: En R: forecast::auto.arima(y, seasonal = TRUE).
Ajuste estacional (X-12/X-13-ARIMA): En Gretl: Variable → Filtro → Ajuste estacional X-12-ARIMA (requiere el binario X-12/X-13 instalado). En R: seasonal::seas(y); extraer la serie ajustada con final(modelo).
Contraste de estacionalidad residual (QS): En R: seasonal::qs(modelo).
6.5 Ejercicios propuestos
- Aplique
nsdiffs()(contrastes OCSB y “seas”) y el test QS deseasonala \(\log(\text{PIB})\) trimestral. ¿Detecta estacionalidad? Razone por qué cabía esperar este resultado, tratándose de una serie de Contabilidad Nacional publicada por el INE. - Sobre el modelo ARIMA(2,1,2)(0,1,1)[12] identificado por
auto.arima()para el IPC, confirme con una tabla de Ljung-Box a 12, 24 y 36 retardos que la validación se mantiene en todos los horizontes. - Compare, en una tabla, el AIC y el BIC del modelo airline y del modelo de
auto.arima()para el IPC. ¿Es el modelo más complejo preferible también por el BIC, más exigente con la parsimonia? - Localice, en la salida de
summary(seas(ipc_ts)), los valores atípicos (AO) y cambios de nivel (LS) detectados automáticamente por X-13 en 2021-2022. Relacione al menos dos de ellos con acontecimientos económicos reales de ese periodo.
6.6 Soluciones de los ejercicios
1. Estacionalidad en \(\log(\text{PIB})\). Tanto nsdiffs() (OCSB: \(D=\) 0; “seas”: \(D=\) 0) como el contraste QS de seasonal (estadístico 0, p = 1) coinciden en que no hay estacionalidad detectable en la serie. Es el resultado esperado: el PIB trimestral que publica el INE en la Contabilidad Nacional Trimestral está corregido de estacionalidad y efecto calendario (CVEC) desde origen, precisamente mediante un procedimiento como TRAMO-SEATS; estaríamos, en cierto modo, verificando el propio ajuste que ya hizo el INE.
2. Validación del SARIMA del IPC a varios horizontes.
| Retardos | Estadistico | p-valor |
|---|---|---|
| 12 | 9.98 | 0.1899 |
| 24 | 15.79 | 0.6711 |
| 36 | 30.08 | 0.5131 |
En los tres horizontes el p-valor es muy superior a los niveles habituales de significatividad: la validación se mantiene, no solo a 12 retardos.
3. AIC y BIC: airline vs. modelo ampliado.
| Modelo | AIC | BIC |
|---|---|---|
| Airline (0,1,1)(0,1,1)[12] | -2306.05 | -2295.14 |
| ARIMA(2,1,2)(0,1,1)[12] | -2320.54 | -2298.74 |
El modelo ampliado gana también en BIC (-2298.7 frente a -2295.1), pese a la mayor penalización por parsimonia que aplica este criterio: en este caso, la complejidad adicional no es sobreajuste, sino estructura real que el modelo airline dejaba sin explicar —coherente con que este último no superara el diagnóstico de residuos.
4. Valores atípicos detectados por X-13 en 2021-2022. Entre los regresores que summary(seas(ipc_ts)) incorpora automáticamente aparecen, entre otros, AO2021.Jan, LS2021.Dec, AO2022.Mar y LS2022.Jun —un valor atípico puntual (additive outlier, AO) y un cambio de nivel permanente (level shift, LS) en cada uno de los dos años—. Ambos periodos coinciden con la crisis energética europea: el fuerte repunte del precio del gas y la electricidad a finales de 2021, y su intensificación tras el inicio de la invasión de Ucrania en 2022, que en España coincidió además con la entrada en vigor del mecanismo de ajuste del precio del gas en el mercado eléctrico (la “excepción ibérica”, mediados de 2022). Son exactamente el tipo de perturbaciones no recurrentes que TRAMO/X-13 están diseñados para aislar del modelo ARIMA de fondo y de los factores estacionales.
El código de este capítulo está en
scripts/T06_mST_Script_SARIMA.R(guion teórico) yscripts/T06_mST_CP_Macro.R(caso práctico del IPC).