cri_gdp <- global_economy |>
filter(Code == "CRI") |>
transmute(
Year,
PIB_per_capita = GDP / Population
) |>
filter(!is.na(PIB_per_capita))
retail_nsw <- aus_retail |>
filter(
State == "New South Wales",
Industry == "Department stores"
) |>
select(Month, Turnover)
stopifnot(
nrow(cri_gdp) > 20,
nrow(retail_nsw) > 100,
!anyNA(cri_gdp$PIB_per_capita),
!anyNA(retail_nsw$Turnover)
)1 Exploración de series de tiempo y naturaleza del pronóstico
CA-0415 Series de Tiempo — Semana 1
1.1 Objetivos de aprendizaje
Al finalizar este capítulo, se espera que el estudiantado pueda:
- distinguir una serie de tiempo de una muestra de observaciones independientes;
- diferenciar objetivos descriptivos, inferenciales y predictivos en un problema temporal;
- formular un problema de pronóstico indicando la variable objetivo, el origen del pronóstico, el horizonte y el conjunto de información disponible;
- reconocer mediante exploración gráfica patrones de tendencia, estacionalidad, ciclos, cambios de variabilidad y observaciones atípicas;
- justificar el uso de transformaciones, en particular la transformación logarítmica y la familia Box–Cox;
- interpretar los componentes de una descomposición clásica y de una descomposición STL;
- realizar una exploración reproducible con
tsibble,feastsyggplot2; - reconocer qué decisiones exploratorias deben respetar el orden temporal cuando el objetivo final es evaluar pronósticos fuera de muestra.
Este capítulo introduce el lenguaje y el flujo de trabajo que utilizaremos durante el curso. La teoría formal de estacionariedad, autocovarianza y autocorrelación se desarrollará en la semana siguiente; aquí interesa primero aprender a formular la pregunta temporal, inspeccionar la serie y reconocer las características que un modelo posterior deberá explicar.
1.2 ¿Qué hace diferente a una serie de tiempo?
Una serie de tiempo es una colección de observaciones registradas secuencialmente. Si los tiempos de observación son regulares, escribiremos
\[ y_1,y_2,\ldots,y_T, \]
donde \(t=1,\ldots,T\) representa el orden temporal. El objeto probabilístico subyacente será denotado por
\[ \{Y_t:t\in\mathcal T\}, \]
y una serie observada \(y_{1:T}\) será una realización parcial de ese proceso.
Esta distinción entre el proceso aleatorio \(\{Y_t\}\) y los valores observados \(y_t\) será útil a lo largo del curso. Prado, Ferreira y West presentan una serie temporal precisamente como un proceso estocástico indexado en el tiempo y subrayan que el interés central está en describir la dependencia entre observaciones tomadas en distintos momentos (Prado et al. 2021, cap. 1). Shumway y Stoffer enfatizan la misma diferencia respecto de los métodos estadísticos que dependen de observaciones independientes (Shumway y Stoffer 2025, cap. 1).
La propiedad más importante, por ahora, es sencilla:
el orden de las observaciones contiene información.
Si permutamos aleatoriamente una muestra independiente, su análisis esencial no cambia. Si permutamos una serie temporal, destruimos la cronología, los patrones estacionales, las transiciones y buena parte de la información relevante para pronosticar.
1.2.1 Frecuencia, índice y calendario
El índice temporal puede representar años, trimestres, meses, semanas, días, horas o intervalos aún más cortos. La frecuencia de observación no es un detalle de almacenamiento: determina qué patrones temporales pueden ser visibles.
Por ejemplo:
- una serie anual puede mostrar tendencia y ciclos de varios años, pero no una estacionalidad mensual;
- una serie mensual puede revelar patrones que se repiten aproximadamente cada doce meses;
- una serie horaria puede contener simultáneamente patrones diarios y semanales.
En el ecosistema tidyverts, un tsibble almacena explícitamente el índice temporal y, cuando existen varias series, una o más variables llave (key). Esta estructura ayuda a evitar ambigüedades sobre qué variable identifica el tiempo y qué observaciones pertenecen a la misma serie (O’Hara-Wild et al. 2022).
1.3 Motivación: dos series con preguntas distintas
Comenzamos con dos ejemplos reales distribuidos en el paquete tsibbledata. global_economy contiene indicadores económicos anuales y aus_retail contiene facturación minorista mensual de Australia (O’Hara-Wild et al. 2022). Usaremos el PIB por habitante de Costa Rica como ejemplo anual y la facturación de tiendas por departamentos en Nueva Gales del Sur como ejemplo mensual.
| Serie | Frecuencia | Inicio | Fin | Número de observaciones |
|---|---|---|---|---|
| PIB por habitante de Costa Rica | Anual | 1960 | 2017 | 58 |
| Facturación de tiendas por departamentos, Nueva Gales del Sur | Mensual | 1982 Apr | 2018 Dec | 441 |
La Tabla 1.1 muestra una diferencia que tendrá consecuencias inmediatas: la primera serie está indexada anualmente y la segunda mensualmente.
cri_gdp |>
autoplot(PIB_per_capita) +
labs(
x = "Año",
y = "USD por habitante",
title = "PIB por habitante de Costa Rica"
) +
scale_y_continuous(labels = scales::label_dollar())
global_economy.
En la Figura 1.1 se observa una evolución de largo plazo que motiva preguntas sobre crecimiento, cambios de pendiente y pronóstico macroeconómico. Debido a que los datos son anuales, no tiene sentido buscar en esta serie una estacionalidad intraanual a partir de estas observaciones.
retail_nsw |>
autoplot(Turnover) +
labs(
x = "Mes",
y = "Millones de AUD",
title = "Facturación mensual de tiendas por departamentos",
subtitle = "Nueva Gales del Sur"
)
La Figura 1.2 muestra una estructura diferente. Además de cambios de nivel a largo plazo, aparecen oscilaciones que se repiten dentro del año y cuya magnitud no parece permanecer constante durante toda la muestra. Esta primera inspección ya sugiere que la escala, la tendencia y la estacionalidad serán relevantes.
Shumway y Stoffer recomiendan que la primera etapa de una investigación temporal sea examinar cuidadosamente los datos graficados contra el tiempo, pues esa inspección suele sugerir qué características deben resumirse o modelarse (Shumway y Stoffer 2025, sec. 1.1). Hyndman y Athanasopoulos adoptan la misma estrategia: antes de ajustar modelos, desarrollan un conjunto de herramientas gráficas para reconocer patrones relevantes (Hyndman y Athanasopoulos 2021, caps. 1–3).
1.4 Describir, inferir y pronosticar
Una misma serie puede estudiarse con propósitos diferentes. Conviene distinguir tres tipos de preguntas.
| Tipo | Pregunta de ejemplo | Resultado principal |
|---|---|---|
| Descriptiva | ¿Qué patrones de tendencia y estacionalidad aparecen en la serie? | Gráficos, descomposiciones y resúmenes |
| Inferencial | ¿Qué valores de los parámetros son compatibles con los datos y el modelo? | Estimadores, intervalos o distribuciones posteriores |
| Predictiva | ¿Qué valores son plausibles para una observación futura? | Pronóstico puntual y distribución predictiva |
Estas categorías no son excluyentes. Un buen análisis predictivo requiere descripción, y la incertidumbre sobre parámetros puede ser importante para cuantificar la incertidumbre predictiva. Sin embargo, distinguir la pregunta principal evita ajustar modelos sofisticados que no responden a la necesidad sustantiva.
Prado, Ferreira y West ilustran esta distinción con aplicaciones donde el interés puede ser pronosticar, caracterizar estructura latente, monitorear cambios o comparar múltiples series (Prado et al. 2021, sec. 1.1).
1.5 La naturaleza del pronóstico
1.5.1 Origen, horizonte y conjunto de información
Supongamos que la última observación disponible corresponde al tiempo \(T\). Llamaremos:
- origen del pronóstico a \(T\);
- horizonte a \(h\geq 1\);
- objetivo a la cantidad futura \(Y_{T+h}\);
- conjunto de información a \(\mathcal I_T\), que contiene todo lo que puede utilizarse legítimamente al emitir el pronóstico en \(T\).
En el caso más sencillo,
\[ \mathcal I_T=\sigma(Y_1,\ldots,Y_T), \]
pero \(\mathcal I_T\) puede incluir variables explicativas, información de calendario u otros datos disponibles en el origen.
La distribución
\[ p(y_{T+h}\mid\mathcal I_T) \tag{1.1}\]
resume la incertidumbre sobre el futuro condicionada a la información disponible. Esta idea será transversal al curso: un pronóstico puntual será alguna característica de Ecuación 1.1, mientras que un pronóstico probabilístico intenta conservar más información sobre la incertidumbre.
1.5.2 Un resultado fundamental: el predictor óptimo depende de la pérdida
La palabra “óptimo” carece de significado si no especificamos qué penaliza una mala predicción. Consideremos una predicción \(a\), calculada usando \(\mathcal I_T\), para \(Y_{T+h}\).
Bajo pérdida cuadrática,
\[ L(Y_{T+h},a)=(Y_{T+h}-a)^2. \]
La esperanza condicional de esta pérdida puede descomponerse como
\[ \begin{aligned} E\left[(Y_{T+h}-a)^2\mid\mathcal I_T\right] &= E\left[ \left\{ Y_{T+h}-E(Y_{T+h}\mid\mathcal I_T) + E(Y_{T+h}\mid\mathcal I_T)-a \right\}^2 \middle| \mathcal I_T \right] \\ &= \operatorname{Var}(Y_{T+h}\mid\mathcal I_T) + \left\{ E(Y_{T+h}\mid\mathcal I_T)-a \right\}^2. \end{aligned} \tag{1.2}\]
El primer término de Ecuación 1.2 no depende de \(a\). El segundo es no negativo y se minimiza cuando
\[ \widehat Y_{T+h\mid T} = E(Y_{T+h}\mid\mathcal I_T). \tag{1.3}\]
Por tanto, la media condicional es el predictor que minimiza el error cuadrático medio condicional. Bajo pérdida absoluta, el resultado correspondiente es una mediana condicional. Más adelante veremos que esto ayuda a interpretar por qué distintos criterios de evaluación favorecen distintas características de una distribución predictiva.
La expresión en Ecuación 1.3 produce un solo número, pero ese número proviene de una distribución condicional. Dos modelos pueden generar el mismo pronóstico puntual y, sin embargo, asignar incertidumbres predictivas muy diferentes. Por eso el curso trabajará tanto con pronósticos puntuales como con intervalos y distribuciones predictivas.
1.5.3 Vista previa: enfoques frecuentista y bayesiano
Durante las primeras semanas construiremos modelos clásicos y, posteriormente, formulaciones bayesianas. La pregunta predictiva es la misma; lo que cambia es la forma de representar y propagar la incertidumbre.
En una formulación bayesiana con parámetros \(\theta\), la distribución predictiva posterior tiene la estructura
\[ p(y_{T+h}\mid\mathcal I_T) = \int p(y_{T+h}\mid\theta,\mathcal I_T) \,p(\theta\mid\mathcal I_T) \,d\theta. \tag{1.4}\]
La ecuación Ecuación 1.4 anticipa una idea que desarrollaremos con detalle más adelante: la incertidumbre sobre \(\theta\) se propaga hacia el pronóstico al integrar con respecto a su distribución posterior. En esta primera semana no necesitamos todavía especificar una verosimilitud ni una distribución a priori.
1.6 Leer una serie antes de modelarla
La exploración gráfica busca reconocer características que un modelo razonable debería poder representar. No se trata de “diagnosticar” un modelo que aún no existe, sino de formular hipótesis sobre la estructura de los datos.
1.6.1 Tendencia
Diremos informalmente que una serie presenta tendencia cuando existe un cambio persistente de largo plazo en su nivel. La tendencia puede ser aproximadamente lineal, curvada, por tramos o mucho más irregular. No debe confundirse con una ley determinista exacta: en análisis de series de tiempo la tendencia suele ser un componente que resume la evolución de baja frecuencia.
1.6.2 Estacionalidad
Existe estacionalidad cuando un patrón aparece asociado a posiciones conocidas del calendario y se repite con una periodicidad aproximadamente fija. Ejemplos típicos son:
- patrones mensuales que se repiten cada año;
- patrones diarios en datos horarios;
- patrones semanales en datos diarios.
La estacionalidad está ligada a una frecuencia temporal conocida. Esto la distingue de oscilaciones que no están sincronizadas con el calendario.
1.6.3 Ciclos
Un ciclo es una oscilación cuya duración no tiene que ser constante ni estar determinada por el calendario. En macroeconomía, por ejemplo, expansiones y contracciones pueden mostrar comportamiento cíclico sin repetirse cada un número fijo de años. En esta semana utilizaremos “ciclo” de manera descriptiva; su tratamiento probabilístico y espectral llegará más adelante.
1.6.4 Observaciones atípicas y cambios estructurales
Una observación muy distinta de sus vecinas puede ser:
- un error de medición o registro;
- un evento real extraordinario;
- el inicio de un cambio permanente;
- una consecuencia de un cambio en la definición de la variable.
La respuesta apropiada no es eliminarla automáticamente. Primero debemos comprender, hasta donde sea posible, qué ocurrió y qué información habría estado disponible al momento de pronosticar.
1.7 Gráficos estacionales
Un gráfico temporal permite ver la evolución global, pero puede ocultar la forma concreta del patrón estacional. feasts proporciona dos gráficos complementarios (Hyndman y Athanasopoulos 2021, secs. 2.4–2.5):
gg_season()superpone los distintos años sobre el mismo ciclo estacional;gg_subseries()agrupa las observaciones correspondientes a cada estación y permite estudiar cómo cambia cada una a lo largo del tiempo.
retail_nsw |>
gg_season(Turnover, labels = "both") +
labs(
x = "Mes",
y = "Millones de AUD",
title = "Patrón estacional de la facturación"
)
La Figura 1.3 permite comparar la forma del año dentro de la misma escala horizontal. Conviene preguntar:
- ¿qué meses tienden a presentar niveles altos o bajos?;
- ¿el patrón se repite de manera estable?;
- ¿la amplitud parece crecer con el nivel de la serie?;
- ¿existen años que se apartan de la estructura habitual?
retail_nsw |>
gg_subseries(Turnover) +
labs(
x = "Mes",
y = "Millones de AUD",
title = "Evolución de cada mes a través de los años"
)
La Figura 1.4 responde a una pregunta distinta: en vez de comparar la forma de cada año, permite estudiar la evolución histórica de enero, febrero, etc. Hyndman y Athanasopoulos destacan que este tipo de gráfico es especialmente útil para detectar cambios en determinadas estaciones (Hyndman y Athanasopoulos 2021, sec. 2.5).
Una función de autocorrelación muestral también puede revelar estructura temporal, pero todavía no hemos definido qué estima ni bajo qué supuestos se interpreta. Su desarrollo probabilístico se reserva para la semana 2. En esta semana basta con aprender que la dependencia temporal no se reduce a un patrón visual de tendencia o estacionalidad.
1.8 Transformaciones
Una transformación modifica la escala de la serie antes de modelarla. Su objetivo no es “hacer bonitos” los datos, sino producir una representación donde ciertas regularidades sean más simples.
Una señal frecuente para considerar una transformación es que la variabilidad aumente con el nivel de la serie. Hyndman y Athanasopoulos recomiendan transformaciones para hacer más estable la magnitud de las fluctuaciones y, con ello, simplificar el modelado posterior (Hyndman y Athanasopoulos 2021, sec. 3.1).
1.8.1 Transformación logarítmica
Para \(y_t>0\),
\[ w_t=\log(y_t). \tag{1.5}\]
La transformación logarítmica convierte cambios multiplicativos en aditivos. Si
\[ y_t = \ell_t s_t r_t, \]
entonces
\[ \log y_t=\log\ell_t+\log s_t+\log r_t. \tag{1.6}\]
Además, diferencias pequeñas de logaritmos admiten una interpretación aproximada en términos de cambios relativos. Esta propiedad explica por qué los logaritmos aparecen con frecuencia en series económicas y financieras.
1.8.2 Familia Box–Cox
Para observaciones positivas, la forma usual de la transformación Box–Cox es
\[ w_t(\lambda)= \begin{cases} \dfrac{y_t^\lambda-1}{\lambda}, & \lambda\neq 0,\\[8pt] \log(y_t), & \lambda=0. \end{cases} \tag{1.7}\]
Cuando \(\lambda=1\), la transformación solo desplaza la serie; cuando \(\lambda=0\), obtenemos el logaritmo. Valores intermedios permiten buscar una escala en la que la amplitud de las fluctuaciones sea más estable (Hyndman y Athanasopoulos 2021, sec. 3.1).
En feasts, la característica guerrero implementa un criterio para seleccionar exploratoriamente \(\lambda\). No debe interpretarse como una ley universal: el valor elegido debe revisarse gráficamente y a la luz del objetivo del análisis.
lambda_retail <- retail_nsw |>
features(Turnover, features = guerrero) |>
pull(lambda_guerrero)
lambda_retail[1] 0.2193207
retail_transformaciones <- retail_nsw |>
mutate(
Original = Turnover,
Logaritmo = log(Turnover),
BoxCox = box_cox(Turnover, lambda_retail)
) |>
as_tibble() |>
pivot_longer(
cols = c(Original, Logaritmo, BoxCox),
names_to = "Transformacion",
values_to = "Valor"
)
ggplot(
retail_transformaciones,
aes(x = Month, y = Valor)
) +
geom_line() +
facet_wrap(~Transformacion, scales = "free_y", ncol = 1) +
labs(
x = "Mes",
y = NULL,
title = "La transformación cambia la escala, no la cronología"
)
La Figura 1.5 debe interpretarse comparando la estabilidad de las fluctuaciones, no los valores verticales entre paneles, pues cada transformación tiene unidades distintas.
Si \(W=g(Y)\), en general
\[ E\{g^{-1}(W)\}\neq g^{-1}\{E(W)\}. \]
Por tanto, invertir una transformación aplicada a un pronóstico medio no produce necesariamente la media predictiva en la escala original. Más adelante distinguiremos entre pronósticos medios y medianos y estudiaremos ajustes de sesgo. El software puede automatizar parte de este cálculo, pero la interpretación estadística sigue siendo necesaria (Hyndman y Athanasopoulos 2021, sec. 5.6).
1.9 Componentes de una serie de tiempo
Una descomposición es una representación útil para separar patrones que operan en escalas distintas. No debe entenderse como una afirmación de que los componentes son observables o únicos.
1.9.1 Descomposición aditiva
Una representación aditiva escribe
\[ y_t=\ell_t+s_t+r_t, \tag{1.8}\]
donde:
- \(\ell_t\) es el componente de tendencia-ciclo;
- \(s_t\) es el componente estacional;
- \(r_t\) es el resto.
La representación aditiva es razonable cuando la amplitud de la estacionalidad y de las fluctuaciones alrededor de la tendencia es aproximadamente estable en la escala observada (Hyndman y Athanasopoulos 2021, sec. 3.2).
1.9.2 Descomposición multiplicativa
Cuando la amplitud de las variaciones parece proporcional al nivel, puede ser más natural escribir
\[ y_t=\ell_t s_t r_t. \tag{1.9}\]
Para datos positivos, Ecuación 1.9 puede convertirse en una representación aditiva tomando logaritmos, como muestra Ecuación 1.6.
1.9.3 Un ejemplo simulado
La diferencia entre amplitud aditiva y multiplicativa se aprecia con una simulación controlada.
set.seed(415)
simulacion <- tibble(
t = 1:120,
tendencia = 100 + 0.8 * t,
estacional = sin(2 * pi * t / 12),
Aditiva = tendencia + 12 * estacional + rnorm(120, sd = 4),
Multiplicativa = tendencia *
exp(0.12 * estacional + rnorm(120, sd = 0.035))
) |>
pivot_longer(
cols = c(Aditiva, Multiplicativa),
names_to = "Estructura",
values_to = "y"
)
ggplot(simulacion, aes(x = t, y = y)) +
geom_line() +
facet_wrap(~Estructura, ncol = 1, scales = "free_y") +
labs(
x = "Tiempo",
y = "Valor",
title = "Dos formas de estacionalidad"
)
En la serie multiplicativa de la Figura 1.6, la oscilación estacional crece con el nivel. Una transformación logarítmica tiende a convertir este tipo de estructura en una forma más cercana a la aditiva.
1.10 Suavizamiento mediante medias móviles
Antes de estudiar modelos probabilísticos, es útil comprender una idea básica de filtrado: combinar observaciones vecinas para revelar movimientos de menor frecuencia.
Para una ventana simétrica de longitud impar \(m=2k+1\), una media móvil centrada puede escribirse como
\[ M_t = \frac{1}{2k+1} \sum_{j=-k}^{k} y_{t+j}. \tag{1.10}\]
Prado, Ferreira y West presentan de forma más general filtros lineales de la forma
\[ z_t=\sum_j a_j y_{t+j}, \qquad \sum_j a_j=1, \]
y muestran cómo ventanas más amplias generan mayor suavizamiento (Prado et al. 2021, sec. 1.4). La intuición es que fluctuaciones locales de signos distintos pueden compensarse, mientras que un movimiento persistente permanece.
Una media móvil centrada como Ecuación 1.10 utiliza observaciones anteriores y posteriores a \(t\). Por tanto, es una herramienta descriptiva de suavizamiento, no un procedimiento directamente disponible para pronosticar en tiempo real. Esta diferencia entre análisis retrospectivo y predicción con información disponible será esencial cuando estudiemos filtros y modelos de espacio-estado.
1.11 Descomposición clásica
La descomposición clásica utiliza medias móviles para estimar la tendencia-ciclo y luego separa la estacionalidad. Para una serie con período estacional \(m\), el procedimiento aditivo puede resumirse así (Hyndman y Athanasopoulos 2021, sec. 3.4):
- estimar \(\ell_t\) mediante una media móvil centrada;
- calcular \(y_t-\widehat\ell_t\);
- estimar el efecto estacional de cada estación promediando los valores sin tendencia correspondientes;
- obtener el resto como
\[\widehat r_t = y_t-\widehat\ell_t-\widehat s_t.\]
Con \(m\) par, como \(m=12\) en datos mensuales, se utiliza un promedio móvil centrado de orden \(2\times m\) para alinear la estimación con tiempos observados.
Para la serie minorista utilizaremos una descomposición multiplicativa clásica, ya que la exploración previa sugiere que la amplitud estacional cambia con el nivel.
retail_nsw |>
model(
clasica = classical_decomposition(
Turnover,
type = "multiplicative"
)
) |>
components() |>
autoplot() +
labs(
title = "Descomposición clásica multiplicativa"
)
La Figura 1.7 es útil pedagógicamente, pero la descomposición clásica tiene limitaciones importantes (Hyndman y Athanasopoulos 2021, sec. 3.4):
- la tendencia no se estima en los extremos de la muestra;
- la media móvil puede suavizar excesivamente cambios rápidos;
- el patrón estacional se supone constante de un año a otro;
- el método es sensible a observaciones inusuales.
Estas limitaciones motivan métodos más flexibles.
1.12 Descomposición STL
STL significa Seasonal and Trend decomposition using Loess. El método separa la serie en tendencia-ciclo, estacionalidad y resto usando suavizamientos locales. Entre sus ventajas están la posibilidad de permitir cambios graduales en la estacionalidad y la opción de reducir la influencia de observaciones atípicas mediante una versión robusta (Hyndman y Athanasopoulos 2021, sec. 3.6).
STL trabaja de manera aditiva. Si la serie tiene una estructura más cercana a la multiplicativa, una estrategia natural consiste en transformar primero la serie y luego aplicar la descomposición.
Usaremos el valor de \(\lambda\) calculado en Sección 1.8.2.
retail_bc <- retail_nsw |>
mutate(
Turnover_bc = box_cox(Turnover, lambda_retail)
)
retail_stl <- retail_bc |>
model(
stl = STL(
Turnover_bc,
robust = TRUE
)
)
componentes_stl <- components(retail_stl)componentes_stl |>
autoplot() +
labs(
title = "Descomposición STL robusta",
subtitle = "Serie transformada mediante Box--Cox"
)
En la Figura 1.8, el componente trend resume la evolución de largo plazo, el componente estacional resume el patrón dentro del año y remainder contiene aquello que no fue atribuido a los dos primeros componentes.
Una descomposición depende del método, la transformación y los parámetros de suavizamiento. El componente de tendencia de STL no es una variable observada ni necesariamente un objeto causal. Es una representación estadística útil para describir la serie y preparar decisiones de modelado.
1.12.1 Datos ajustados estacionalmente
En una descomposición aditiva,
\[ a_t = y_t-s_t \tag{1.11}\]
define la serie ajustada estacionalmente. Contiene tendencia-ciclo y resto. Por eso una serie ajustada estacionalmente no equivale al componente de tendencia.
En la escala transformada de nuestra aplicación podemos comparar los tres objetos.
componentes_stl |>
as_tibble() |>
select(
Month,
Serie = Turnover_bc,
Tendencia = trend,
Ajustada_estacionalmente = season_adjust
) |>
pivot_longer(
cols = -Month,
names_to = "Componente",
values_to = "Valor"
) |>
ggplot(aes(x = Month, y = Valor)) +
geom_line() +
facet_wrap(~Componente, ncol = 1, scales = "free_y") +
labs(
x = "Mes",
y = NULL,
title = "La serie ajustada estacionalmente no es la tendencia"
)
La Figura 1.9 permite distinguir una idea que suele generar confusión: eliminar la estacionalidad no elimina la variación irregular.
1.13 Una lectura integrada de la aplicación
A partir de los gráficos anteriores podemos formular una descripción inicial de la serie minorista sin haber ajustado todavía un modelo de pronóstico.
- Frecuencia: es una serie mensual, por lo que un patrón anual puede manifestarse como estacionalidad con período cercano a 12 observaciones.
- Nivel y tendencia: el nivel cambia de manera importante durante la muestra.
- Estacionalidad: los gráficos estacionales muestran diferencias sistemáticas entre meses.
- Escala: la magnitud de las fluctuaciones cambia con el nivel, lo que justifica estudiar una transformación.
- Descomposición: la separación tendencia–estacionalidad–resto facilita localizar qué parte de la variación es sistemática y cuál permanece sin explicar.
- Pronóstico: cualquier modelo que utilicemos después deberá ser evaluado según su capacidad para predecir observaciones futuras, no solo por su capacidad para reconstruir los datos pasados.
Esta última observación es fundamental. Una descomposición descriptivamente atractiva no garantiza un buen desempeño predictivo.
1.14 Del análisis exploratorio al flujo de trabajo del curso
El curso utilizará el siguiente flujo como hilo conductor:
\[ \boxed{ \text{explorar} \longrightarrow \text{modelar} \longrightarrow \text{diagnosticar} \longrightarrow \text{pronosticar} \longrightarrow \text{evaluar} } \tag{1.12}\]
Cada etapa responde a una pregunta distinta:
| Etapa | Pregunta |
|---|---|
| Explorar | ¿Qué características temporales aparecen en los datos? |
| Modelar | ¿Qué estructura probabilística puede representar esas características? |
| Diagnosticar | ¿Qué aspectos sistemáticos quedaron sin explicar? |
| Pronosticar | ¿Qué distribución asigna el modelo a observaciones futuras? |
| Evaluar | ¿Cómo se desempeña el pronóstico con datos que no fueron usados para ajustarlo? |
La Tabla 1.3 también muestra por qué no conviene reducir series de tiempo a una receta del tipo “mirar el gráfico y escoger un modelo”. Las decisiones posteriores deben estar conectadas con la pregunta sustantiva y con la información realmente disponible.
1.15 Información futura y fuga de información
Cuando el objetivo es únicamente descriptivo, utilizar toda la serie para una descomposición retrospectiva puede ser apropiado. Cuando queremos medir la capacidad predictiva, la situación cambia.
Supongamos que deseamos simular un pronóstico que habría sido emitido en \(T_0<T\). Cualquier transformación, selección de parámetros, descomposición o ajuste que utilice observaciones posteriores a \(T_0\) incorpora información que el analista no habría tenido. Este problema se conoce como fuga de información (information leakage).
Si una operación aprende algo a partir de los datos —por ejemplo, un parámetro de transformación, un componente de tendencia o un parámetro del modelo—, durante una evaluación fuera de muestra debe estimarse usando únicamente el conjunto de entrenamiento correspondiente.
En la semana 7 formalizaremos particiones temporales, ventanas expansivas, origen móvil y métricas de evaluación. Por ahora, la regla esencial es: el futuro no puede participar en la construcción de un pronóstico del pasado.
1.16 Formulación de una pregunta predictiva
Antes de decidir entre ARIMA, ETS, un modelo bayesiano o un modelo de espacio-estado, debemos poder completar una ficha como la siguiente.
| Elemento | Pregunta |
|---|---|
| Variable objetivo | ¿Qué cantidad se desea pronosticar y en qué unidades? |
| Frecuencia | ¿Cada cuánto se observa la variable? |
| Origen | ¿Cuál es la última observación disponible al emitir el pronóstico? |
| Horizonte | ¿Cuántos períodos hacia adelante son relevantes? |
| Información | ¿Qué datos estarán efectivamente disponibles en el origen? |
| Uso | ¿Qué decisión o pregunta sustantiva apoyará el pronóstico? |
| Incertidumbre | ¿Se necesita un punto, un intervalo o una distribución predictiva? |
| Evaluación | ¿Qué observaciones futuras permitirán juzgar el desempeño? |
1.16.1 Ejemplo con la serie minorista
Una pregunta predictiva razonablemente precisa podría ser:
Al final de cada mes, pronosticar la facturación de tiendas por departamentos de Nueva Gales del Sur para los siguientes \(h=1,\ldots,12\) meses utilizando únicamente la historia disponible hasta ese origen.
Esta formulación aclara inmediatamente varios aspectos:
- el horizonte no es uno solo, sino de 1 a 12 meses;
- los patrones estacionales son relevantes;
- la evaluación debe respetar múltiples orígenes temporales;
- las transformaciones y parámetros deben estimarse con información disponible en cada origen si se realiza una evaluación retrospectiva.
Todavía no hemos decidido qué modelo usar. Esa separación entre problema predictivo y modelo es deliberada.
1.17 Actividad computacional guiada
Utilice la serie del PIB por habitante de Costa Rica y la serie minorista trabajadas en el capítulo.
1.17.1 Parte A. Estructura temporal
- Use
interval()para inspeccionar la periodicidad de cadatsibble. - Verifique las fechas inicial y final.
- Explique por qué un gráfico estacional mensual es pertinente para una serie pero no para la otra.
tsibble::interval(cri_gdp)<interval[1]>
[1] 1Y
tsibble::interval(retail_nsw)<interval[1]>
[1] 1M
1.17.2 Parte B. Exploración de escala
- Grafique la serie minorista en escala original y logarítmica.
- Calcule \(\lambda\) con
features(Turnover, guerrero). - Compare visualmente el patrón estacional antes y después de la transformación.
- Explique qué significa “estabilizar la variabilidad” en este ejemplo.
1.17.3 Parte C. Descomposición
- Obtenga una descomposición clásica.
- Obtenga una descomposición STL robusta.
- Compare las tendencias estimadas en los extremos.
- Identifique períodos donde el resto tenga magnitud inusual.
- Discuta por qué esos períodos no deberían eliminarse sin una investigación sustantiva adicional.
1.18 Actividad inicial del proyecto
El proyecto del curso comienza desde la primera semana. Antes de proponer un modelo, cada grupo debe ser capaz de presentar una pregunta de investigación y un conjunto de datos temporalmente bien definido.
Prepare una ficha de una página con los siguientes elementos:
- Pregunta sustantiva. ¿Qué problema real motiva el análisis?
- Variable objetivo. Nombre, definición y unidades.
- Fuente de datos. Institución, enlace o archivo original y fecha de consulta.
- Frecuencia temporal. Anual, trimestral, mensual, semanal, diaria, etc.
- Período disponible. Primera y última observación.
- Horizonte de interés. Indique \(h\) en unidades compatibles con la frecuencia.
- Conjunto de información. ¿Qué variables estarán disponibles cuando se emita cada pronóstico?
- Utilidad del pronóstico. ¿Qué decisión o interpretación se beneficiaría de él?
- Primera exploración. Incluya al menos un gráfico temporal correctamente rotulado.
- Dificultades anticipadas. Faltantes, cambios de definición, observaciones extraordinarias, estacionalidad, longitud limitada o posibles cambios estructurales.
En esta etapa se evalúa la claridad de la pregunta y la calidad del dato. Es preferible una pregunta predictiva precisa con un conjunto de datos bien documentado que una lista prematura de modelos posibles.
1.19 Síntesis
Las ideas centrales de la semana son las siguientes:
- una serie de tiempo conserva información en el orden de las observaciones;
- proceso estocástico y realización observada no son el mismo objeto;
- describir, inferir y pronosticar son objetivos relacionados, pero distintos;
- todo pronóstico debe especificar origen, horizonte y conjunto de información;
- bajo pérdida cuadrática, el predictor puntual óptimo es la media condicional;
- tendencia, estacionalidad, ciclos y observaciones inusuales deben explorarse antes de modelar;
- las transformaciones pueden simplificar la estructura de la variabilidad;
- una descomposición es una representación estadística, no una verdad única sobre los datos;
- STL ofrece una alternativa más flexible que la descomposición clásica;
- una evaluación predictiva válida debe respetar la información disponible en cada origen.
En la siguiente semana formalizaremos los conceptos de estacionariedad, autocovarianza y autocorrelación, y comenzaremos el estudio de modelos autorregresivos. Esa teoría permitirá reemplazar parte de la intuición gráfica de este capítulo por propiedades probabilísticas precisas.
1.20 Ejercicios
1.20.1 Conceptuales
Orden temporal. Explique por qué permutar aleatoriamente una serie mensual puede destruir información relevante aunque el histograma de los valores permanezca exactamente igual.
Pregunta estadística. Para cada situación, indique si el objetivo principal es descriptivo, inferencial o predictivo, y justifique:
- estimar la probabilidad posterior de que un coeficiente autorregresivo sea positivo;
- identificar los meses con mayor demanda histórica de electricidad;
- anticipar la demanda eléctrica de las siguientes 24 horas;
- detectar si la volatilidad financiera cambió después de un evento.
Horizonte. Dos analistas usan exactamente la misma serie. Uno necesita pronósticos a un día y el otro a doce meses. Explique por qué no debería asumirse que el mismo modelo será igualmente adecuado para ambos objetivos.
Conjunto de información. Dé un ejemplo de una covariable que podría pertenecer a \(\mathcal I_T\) para un pronóstico y no pertenecer a \(\mathcal I_T\) para otro, aunque ambos intenten predecir la misma variable.
1.20.2 Derivaciones
Pérdida cuadrática. Complete los pasos algebraicos que conducen a Ecuación 1.2 y demuestre formalmente que Ecuación 1.3 minimiza la pérdida cuadrática esperada condicional.
Transformación multiplicativa. Partiendo de Ecuación 1.9, derive Ecuación 1.6. Explique qué supuesto sobre los componentes se requiere para aplicar logaritmos.
Box–Cox. Use la regla de L’Hôpital o una expansión de Taylor para verificar que
\[\lim_{\lambda\to 0} \frac{y^\lambda-1}{\lambda} = \log y, \qquad y>0. \]
- Media móvil. Suponga que \[y_t=\alpha+\beta t+s_t,\] donde \(s_t\) es exactamente periódico de período impar \(m=2k+1\) y \(\sum_{j=-k}^{k}s_{t+j}=0.\) Muestre qué ocurre al aplicar la media móvil centrada de Ecuación 1.10. Interprete el resultado.
1.20.3 Computacionales
- PIB de Costa Rica. Utilice
global_economy.- Construya la serie de PIB por habitante.
- Grafíquela.
- Considere las transformaciones original y logarítmica.
- Describa qué patrones pueden identificarse y cuáles no pueden evaluarse con datos anuales.
- Formule una pregunta de pronóstico a cinco años especificando \(T\), \(h\) y \(\mathcal I_T\).
- Otra serie minorista. Seleccione una combinación distinta de
StateeIndustryenaus_retail.- Produzca
autoplot(),gg_season()ygg_subseries(). - Describa tendencia y estacionalidad.
- Calcule un \(\lambda\) de Guerrero.
- Compare escala original y Box–Cox.
- Obtenga una descomposición STL robusta.
- Escriba tres características que un modelo de pronóstico debería ser capaz de representar.
- Produzca
- Datos con observaciones inusuales. Examine una serie del conjunto
ansett.- Identifique visualmente períodos inusuales.
- Investigue la descripción del conjunto de datos.
- Explique por qué reemplazar automáticamente los valores inusuales por una media móvil podría destruir información relevante.
- Fuga de información. Suponga que quiere evaluar retrospectivamente pronósticos emitidos al final de 2010, pero estima el parámetro Box–Cox usando datos hasta 2018.
- Explique cuál es el problema.
- Proponga una forma correcta de proceder.
- Indique qué otras etapas del flujo Ecuación 1.12 podrían producir el mismo tipo de fuga.
1.21 Lecturas recomendadas
Para esta semana:
- Hyndman y Athanasopoulos: capítulos 1 y 2; secciones 3.1–3.4 y la sección dedicada a STL (Hyndman y Athanasopoulos 2021).
- Prado, Ferreira y West: secciones 1.1–1.4, como complemento sobre objetivos, procesos estocásticos y suavizamiento (Prado et al. 2021).
- Shumway y Stoffer: capítulo 1, especialmente la motivación y los ejemplos introductorios (Shumway y Stoffer 2025).
La función de autocorrelación puede aparecer en las lecturas de estos textos, pero su definición y propiedades se trabajarán formalmente en la semana 2.