Licenciatura en Economía | Econometría II
Este Manual del Tratamiento de Series Temporales ha sido desarrollado como material de apoyo para la unidad de aprendizaje de Econometría II, perteneciente a la Licenciatura en Economía de la Facultad de Ciencias Sociales de la Universidad Autónoma de Campeche.
Agradecemos a la institución por fomentar espacios de innovación académica que permiten a los estudiantes acceder a herramientas metodológicas de vanguardia, fortaleciendo así su perfil analítico y su compromiso con la excelencia científica.
En la formación contemporánea del economista, el uso de herramientas como R no es solo una elección técnica, sino una postura profesional. El software libre garantiza la reproducibilidad de la ciencia económica y democratiza el acceso al conocimiento de alto nivel. Dominar R permite al analista desprenderse de licencias costosas y desarrollar soluciones personalizadas, transparentes y auditables, competencias esenciales en un mercado laboral que demanda cada vez más habilidades en Data Science.
El propósito de esta guía es que el estudiante aprenda a “abrir” una serie de tiempo mediante el Método de Descomposición Clásica, permitiéndole observar los mecanismos internos que la mueven: su tendencia de largo plazo, sus ciclos estacionales y el ruido aleatorio.
A lo largo de este documento, cubriremos el flujo de trabajo completo:
AirPassengers para realizar la descomposición y
desestacionalización.Este manual busca convertir los datos estadísticos en inteligencia económica aplicada, proporcionando una base sólida para la planificación y la toma de decisiones estratégicas.
A diferencia de los modelos de “caja negra” propios del Machine Learning moderno, el método clásico destaca por su transparencia e interpretabilidad. Para un economista, no solo es importante saber qué pasará, sino entender por qué está pasando, diferenciando el crecimiento estructural de las fluctuaciones estacionales.
A lo largo de este documento, cubriremos el flujo de trabajo completo de un analista de datos:
AirPassengers para realizar la descomposición y
desestacionalización de datos.Este manual no es solo una guía de programación, sino una herramienta para convertir datos estadísticos en inteligencia económica para la toma de decisiones estratégicas.
Antes de comenzar con este manual, asegúrate de tener instaladas las herramientas base. Si ya las tienes, puedes saltar al siguiente punto.
Ejecuta el siguiente bloque de código. Este script detectará si te falta alguna librería y la instalará automáticamente para que no tengas errores al seguir el manual.
# Lista de paquetes necesarios
paquetes <- c("forecast", "ggplot2", "tseries", "tidyverse", "knitr", "plotly")
# Función para instalar paquetes faltantes
instalacion <- function(p) {
if (!require(p, character.only = TRUE)) {
install.packages(p, dependencies = TRUE)
library(p, character.only = TRUE)
}
}
# Aplicar la función a la lista
invisible(sapply(paquetes, instalacion))Si algún alumno utiliza un sistema operativo distinto a Windows, es
posible que encuentre errores al instalar paquetes como
tidyverse o forecast. Aquí están las
soluciones más comunes:
xcode-select --install.gfortran desde la página oficial de R-project.R en Linux no descarga paquetes pre-compilados, sino que los compila
al momento. Esto requiere que el sistema tenga instaladas ciertas
librerías de desarrollo antes de abrir RStudio. *
Solución: Abrir la terminal de Linux y ejecutar el
siguiente comando para instalar las dependencias necesarias para
tidyverse y forecast:
sudo apt update
sudo apt install -y libcurl4-openssl-dev libssl-dev libxml2-dev libfontconfig1-dev libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev
Nota para el alumno: Si el error persiste, lee con atención las últimas líneas de la consola en RStudio; generalmente allí se indica el nombre de la librería del sistema que hace falta.
El análisis de series temporales mediante el método clásico busca desglosar una variable observada en sus componentes fundamentales. El objetivo principal es “limpiar” la serie de patrones predecibles (tendencia y estacionalidad) para analizar el residuo o realizar pronósticos basados en la estructura identificada.
Una serie temporal \(Y_t\) se puede expresar de dos formas:
Donde: * \(T_t\) (Tendencia/Ciclo): Movimiento de largo plazo. * \(S_t\) (Estacionalidad): Patrones que se repiten en periodos fijos (meses, trimestres). * \(I_t\) (Irregular/Residuo): Ruido aleatorio no explicable.
Utilizaremos el dataset AirPassengers, que representa el
total mensual de pasajeros de líneas aéreas internacionales (1949-1960),
un clásico para ejemplos económicos.
# Carga de librerías necesarias
library(tidyverse)
library(forecast)
library(tseries)
library(ggplot2)
# Carga de datos
data("AirPassengers")
serie_ts <- AirPassengersautoplot(serie_ts) +
labs(title = "Pasajeros Internacionales (1949-1960)",
y = "Miles de Pasajeros", x = "Año") +
theme_minimal()p <- autoplot(serie_ts, color = "darkblue") +
labs(title = "Exploración Interactiva de Pasajeros",
y = "Miles de Pasajeros", x = "Año") +
theme_minimal()
# Lo convertimos a Plotly
ggplotly(p)# Descomposición multiplicativa
descomposicion <- decompose(serie_ts, type = "multiplicative")
# Gráfico de los componentes
autoplot(descomposicion) +
labs(title = "Descomposición Clásica Multiplicativa") +
theme_bw()serie_ajustada <- serie_ts / descomposicion$seasonal
autoplot(serie_ts, series = "Original") +
autolayer(serie_ajustada, series = "Desestacionalizada") +
labs(title = "Efecto de quitar la Estacionalidad", y = "Pasajeros") +
theme_minimal()# Ajuste del modelo Holt-Winters
modelo_hw <- HoltWinters(serie_ts, seasonal = "multiplicative")
# Pronóstico a 24 meses (2 años)
pronostico <- forecast(modelo_hw, h = 24)
# Visualización del pronóstico
autoplot(pronostico) +
labs(title = "Pronóstico de Pasajeros para los próximos 2 años",
x = "Año", y = "Pasajeros") +
theme_classic()# Ejecutamos el diagnóstico
# Nota: checkresiduals genera gráficos y la prueba estadística
checkresiduals(modelo_hw)##
## Ljung-Box test
##
## data: Residuals from HoltWinters
## Q* = 42.535, df = 24, p-value = 0.01123
##
## Model df: 0. Total lags used: 24
Al observar la salida del Ljung-Box test, debemos fijarnos en dos elementos clave:
Nota Académica: En este ejercicio con AirPassengers, obtenemos un p-valor de 0.011. Esto nos indica que, aunque el modelo Holt-Winters captura la tendencia general, la complejidad de la industria aérea internacional de esa época dejó rastros de información que requerirían modelos más avanzados (como un SARIMA).
A pesar de que el modelo no es “estadísticamente perfecto” (por el p-valor), su MAPE de ~2.7% lo hace extremadamente preciso para fines prácticos de planeación. En economía, a veces un modelo con un error de pronóstico muy bajo es preferible, aunque los residuos no sean puramente aleatorios.
# Calculamos las métricas de error del pronóstico
metricas <- accuracy(pronostico)
# Generamos la tabla profesional
knitr::kable(metricas[, c("RMSE", "MAE", "MAPE")],
digits = 2,
caption = "Tabla 1: Métricas de Error del Modelo Holt-Winters",
col.names = c("RMSE (Magnitud)", "MAE (Error Absoluto)", "MAPE (Error %)"))| MAE (Error Absoluto) | MAPE (Error %) |
|---|---|
| RMSE | 11.20 |
| MAE | 8.39 |
| MAPE | 3.02 |
Es fundamental entender qué nos dicen estos números para validar si nuestro pronóstico es confiable para la toma de decisiones.
Basándonos en la tabla anterior, así debemos interpretar cada valor:
A diferencia de modelos más complejos como ARIMA o Prophet (de Facebook), el método clásico tiene sus particularidades:
| Característica | Método Clásico (H-W) | ARIMA | Machine Learning (LSTM/NN) |
|---|---|---|---|
| Transparencia | Alta: Entiendes qué es tendencia y qué es mes. | Media: Es más matemático y abstracto. | Baja: Es una “caja negra”. |
| Volumen de datos | Requiere pocos datos históricos. | Requiere al menos 2-3 ciclos completos. | Requiere bases de datos masivas. |
| Flexibilidad | Baja: Asume que la estacionalidad no cambia. | Alta: Se ajusta a cambios en los patrones. | Extrema: Aprende patrones complejos. |
Conclusión del analista: El método clásico es ideal para informes ejecutivos donde la explicabilidad es más importante que la precisión milimétrica, especialmente en sectores con estacionalidad muy marcada como el turismo. ## Conclusión Final del Análisis
El tratamiento de la serie temporal de pasajeros internacionales (1949-1960) mediante el método de descomposición clásica y el suavizamiento exponencial de Holt-Winters permite extraer conclusiones fundamentales tanto estadísticas como estratégicas:
En resumen, este flujo de trabajo —desde la visualización inicial hasta la validación de residuos— garantiza que el pronóstico elaborado sea una base sólida para la planificación de recursos, la proyección de ingresos y la gestión operativa en sectores con comportamientos cíclicos definidos.
Ahora que has dominado el flujo de trabajo con la serie de pasajeros internacionales, es momento de poner a prueba tus habilidades como economista analizando la realidad de nuestro país.
.csv.Para ayudarte con la importación, utiliza el siguiente bloque de
código como plantilla. Nota: Los archivos de INEGI
suelen tener filas de texto al principio, por lo que usaremos el
argumento skip para saltarlas.
# 1. Carga tu archivo (cambia 'tu_archivo.csv' por el nombre real)
# El argumento 'skip' elimina las filas de títulos de INEGI/Banxico
datos_mex <- read.csv("tu_archivo.csv", skip = 4, header = TRUE)
# 2. Convertir a serie de tiempo (ts)
# Cambia 'frecuency = 12' si es mensual y ajusta el año de inicio
serie_mex <- ts(datos_mex[,2], start = c(2010, 1), frequency = 12)
# 3. Tu turno: Aplica lo aprendido
# - Realiza la descomposición clásica
# - Genera el pronóstico de Holt-Winters para 12 meses
# - Calcula el MAPEPara que tu análisis sea exitoso, sigue estos pasos para obtener un archivo compatible con R:
skip = dentro de
R.Tip de Economista: Si descargas el IGAE, estarás analizando el “PIB mensual” de México. Es una excelente serie para ver cómo caen los datos en las crisis (como la de 2008 o 2020) y cómo se recuperan.
Esta tabla resume los conceptos clave abordados en este manual para tu estudio y repaso.
| Término | Definición Técnica | Importancia en el Análisis |
|---|---|---|
| Ruido Blanco | Serie de datos aleatorios con media cero y varianza constante. | Indica que el modelo ha extraído toda la información útil. |
| Estacionariedad | Propiedad de una serie cuyas características estadísticas no cambian en el tiempo. | Requisito fundamental para muchos modelos de pronóstico. |
| MAPE | Error Porcentual Absoluto Medio. | Permite comparar la precisión entre diferentes modelos o series. |
| RMSE | Raíz del Error Cuadrático Medio. | Penaliza errores grandes; útil para medir la magnitud del error en unidades originales. |
| Ljung-Box | Prueba estadística de autocorrelación en los residuos. | Determina si los errores son aleatorios (Ruido Blanco) o si falta ajustar el modelo. |
| Parámetros \(\alpha, \beta, \gamma\) | Coeficientes de suavizamiento de Holt-Winters. | Controlan el peso de los datos recientes en el nivel, tendencia y estacionalidad. |
Se recomienda al alumno consultar las siguientes fuentes para profundizar en la teoría de series de tiempo:
© 2026 - Dr. Adrián Eduardo Pech Quijano | Facultad de Ciencias Sociales | Universidad Autónoma de Campeche.