
Ajuste estacional: Analisis de Series de Temporales con X-13ARIMA-SEATS
Por: Juan M. Gutierrez
Uno de los dilemas en el siglo pasado fue el uso de una adecuada metodologia que cumpla tres objetivos: precision en el desempeno de la prediccion fuera de la muestra, facilidad en el uso de la tecnica algoritmica, y replicabilidad.
Asi, fueron apareciendo metodos que sostengan los supuestos (propiedades) estadisticas que la inferencia convencional habia teorizado hace mas de 212 anos (Carl Friedrich Gauss, 1809 en su Theoria Motus Corporum Coelestium in Sectionibus Conicis Solem Ambientium, sobre el metodo de Minimos Cuadrados Ordinarios) avanzando a traves de los anos creando nuevos modelos de analisis de datos. De la mano de los cientificos que aplicaban estos conceptos nacen la econometria, el analisis multivariante, los analisis de encuestas, la ciencia de datos, y el Big Data que empujaron a investigadores a innovar y crear con ayuda de la tecnologia computacional programas y metodos que ahora se ponen a prueba cada dia en los analisis de mercado, de la economia, las relaciones entre los agentes economicos, modelos de supervivencia, analisis de series temporales, etcetera.
Los metodos de alisado
Asi, el proceso de desestacionalizacion sigue el algoritmo iterativo que busca el ajuste estacional, que es la eliminacion del componente estacional de una serie temporal a traves de un procedimiento. El resultado (los datos desestacionalizados) son utilizados en el analisis de tendencias no estacionales a lo largo de periodos mas largos.
Se debe entender que el uso de esta tecnica persigue un objetivo principal y uno secundario:
-
Objetivo principal: utilizar la serie sin el componente de ruido que genera los efectos calendario, como la estacion anual, los feriados, las fiestas nacionales o locales, los mega eventos como el Black Friday o el Boxing Day, etcetera. Este objetivo se persigue para evaluar una serie en periodos mas largos dejando atras el interes de los shocks temporales mencionados antes.
-
Objetivo secundario: incorporar a un modelo mas complejo el resultado de la serie desestacionalizada persiguiendo algun objetivo de prediccion que necesite la captura de los shocks puntuales por efecto calendario.
X-13ARIMA-SEATS en R: Guia practica
Basado en el trabajo de Christoph Sax y Dirk Eddelbuettel, traducido por Juan M. Gutierrez.
El paquete seasonal en R es la interfaz al programa X-13ARIMA-SEATS del U.S. Census Bureau. Permite realizar ajuste estacional automatico de series temporales con una sola linea de codigo.
Instalacion y uso basico
library(seasonal)
# Ajuste estacional automatico
m <- seas(unemp)
summary(m)
plot(m)
La funcion seas() aplica automaticamente las siguientes operaciones de X-13:
- Seleccion de transformacion log/no-log
- Deteccion de efectos de Accion de Gracias y Pascua
- Identificacion de outliers (valores atipicos)
- Seleccion del modelo ARIMA
- Ajuste SEATS (por defecto) o X-11
Personalizacion del modelo
Se pueden sobreescribir las opciones automaticas utilizando la sintaxis especificacion.argumento:
# Especificar variables de regresion manualmente
m2 <- seas(unemp,
regression.variables = c("td", "ls2009.11"),
regression.aictest = NULL)
La funcion acepta vectores de R como parametros de entrada y distingue entre cadenas vacias (especificacion habilitada sin argumentos) y NULL (especificacion deshabilitada).
Especificaciones estaticas
Para convertir un modelo automatico en especificaciones explicitas y reproducibles:
static(m)
Esto genera especificaciones que reemplazan los procedimientos automaticos con sus equivalentes seleccionados, lo que permite reproducibilidad total.
Regresores externos
Se pueden incorporar variables externas o ajustes personalizados de outliers:
# Crear un regresor de cambio de nivel (level shift)
lshift <- ts(-1, start = c(1990, 1), end = c(2019, 11), freq = 12)
window(lshift, start = c(2009, 11)) <- 0
# Usar el regresor externo
m3 <- seas(unemp, xreg = lshift, outlier = NULL)
Extraccion de resultados
Se pueden recuperar resultados especificos de X-13 usando la funcion series():
# Obtener predicciones
series(m, "forecast.forecasts")
# Obtener multiples series
series(m, c("forecast.forecasts", "s12"))
La funcion udg() proporciona acceso unificado a todas las tablas de diagnostico de X-13.
Actualizacion de modelos
Se pueden modificar modelos existentes sin recalcular desde cero:
# Cambiar el modelo ARIMA y usar X-11 en vez de SEATS
update(m, arima.model = "(0 1 1)(0 1 1)", x11 = "")
# Prediccion con nuevos datos
predict(m, newdata = unemp)
Herramientas de visualizacion
plot(m) # Series ajustada y no ajustada
monthplot(m) # Componentes estacionales por mes
view(m) # Interfaz HTML interactiva para exploracion detallada
Reglas de prioridad
Las especificaciones mutuamente excluyentes siguen jerarquias:
- Seleccion de modelo: ARIMA > pickmdl > automdl (por defecto)
- Tipo de ajuste: X-11 > SEATS (por defecto)
Diagnosticos
Las funciones estandar de R funcionan con objetos seas:
AIC(m) # Criterio de informacion de Akaike
BIC(m) # Criterio de informacion bayesiano
logLik(m) # Log-verosimilitud
nobs(m) # Numero de observaciones
Diagnosticos avanzados
Las especificaciones slidingspans() y history() proporcionan evaluaciones diagnosticas computacionalmente intensivas, utiles para validar la estabilidad del ajuste a traves de ventanas temporales.
Referencias
- Sax, C. y Eddelbuettel, D. Seasonal Adjustment by X-13ARIMA-SEATS in R. Journal of Statistical Software.
- U.S. Census Bureau. X-13ARIMA-SEATS Reference Manual.
- Documentacion del paquete seasonal en CRAN
SOFTWARE FOR TIME SERIES DATA HANDLING
Throughout my time as a Data Scientist, the question of my clients or students always arose about which program is the best to model time series.
Algunos comandos utiles en R
Una referencia rapida con algunos de los comandos mas utiles en R para manipulacion de datos, operadores, funciones matematicas y estadisticas, y tests de hipotesis.

¿Te gustó este contenido?
Obtén certificados verificables en Python, Data Science y Machine Learning.
Ver Certificaciones Disponibles →
