Resumen
El episodio 106 de enCoders es una introducción conceptual a las series de tiempo y al forecasting, basada en el libro gratuito *Forecasting: Principles and Practice*. Se explica por qué el forecasting aparece en casi toda empresa (demanda, inventario, finanzas) y de qué depende que algo sea predecible: los datos disponibles, los factores que influyen y si la predicción afecta lo que se predice, como en el mercado financiero. Se repasan los pasos para hacer un forecast, con énfasis en definir bien el problema, y los conceptos base: tendencia, estacionalidad, ciclos, autocorrelación y residuos. Se muestran ejemplos en R con el método naïve, ARIMA y auto.arima, y luego Prophet, que se presenta como una opción simple y conveniente pensada para analistas sin mucho background estadístico. Conclusiones: hay que partir por entender el problema y los conceptos, ARIMA requiere estudio profundo, Prophet sirve como benchmark o solución rápida, y un modelo vale mientras sea útil. En series de tiempo no se debe separar train y test de forma aleatoria.
Capítulos
- 00:00IntroPantalla de espera con música. La conversación en vivo parte hacia las 00:06:07, con la bienvenida al episodio 106 sobre series temporales (cosas básicas).
- 01:18MotivaciónEntre saludos y charla previa se comenta la semana de los presentadores y que el libro usado es muy recomendable. Se responden dudas de Discord: gestionar variantes de modelos (scripts separados, MLflow, DVC, Neptune) y usar rutas relativas a la carpeta madre del proyecto. Luego se explica por qué el forecasting aparece en todas las empresas (demanda, inventario, finanzas) y de qué depende que algo sea predecible. Se discute el mercado financiero, la hipótesis del mercado eficiente, el análisis técnico y la profecía autocumplida, y se menciona el uso de una serie temporal para detectar anomalías en datos de viajes.
- 14:43Forecasting: Principles and PracticesSe presenta el libro de Hyndman, gratuito y online, con código en R. Se recomienda leerlo (en particular los capítulos sobre ARIMA) y se cuenta que fue la fuente principal del episodio.
- 16:37Pasos para hacer un forecast 1Primer paso: definir bien el problema (quién lo usará, cómo, con qué periodicidad y horizonte). Con 12 datos y pedido a 3 años, no tiene sentido avanzar.
- 20:09Ejemplo de detección de anomalías con series temporalesMati usa Prophet y solo el intervalo de confianza del 95 %: lo que importa no es la curva predicha sino marcar como anomalía los puntos reales que salen de esa banda.
- 25:11Pasos para hacer un forecast 2Los siguientes pasos son recopilar información, hacer análisis exploratorio (detectar cambios de fuente o datos raros), escoger y ajustar el modelo, y usarlo y evaluarlo. Se comenta que un modelo vale en cuanto es útil, aunque conviene saber qué hipótesis no se cumplen.
- 29:06Tipos de modelosSegún el libro: modelos explicativos (demanda eléctrica según temperatura, hora, día), modelos de series de tiempo (valores pasados de la propia serie) y modelos mixtos. Se comenta que estos modelos no requieren mucho poder computacional.
- 36:09Patrones de una serie de tiempoTendencia (hacia dónde va la serie), estacionalidad (patrón en fechas fijas, como el consumo de carne el 18 de septiembre en Chile) y ciclos (subidas y bajadas sin periodo fijo). Se comenta también el uso de R frente a Python.
- 43:58MemesDividir una serie temporal de forma aleatoria produce fuga de información (leakage); hay que cortar por fecha. También se bromea con que no todo es deep learning, con el método naïve como baseline y con el olvido de las series temporales.
- 51:08Post de discord de la semanaSe comenta la cita de que Deep Learning no supera a los algoritmos clásicos en series de tiempo, sistemas de recomendación y datos tabulares, y se pide dejar la referencia en los links.
- 56:32AutocorrelaciónEs la correlación de una serie consigo misma con un rezago (lag). Se calcula en R con la cerveza trimestral australiana, se muestra el gráfico ACF y se verifica a mano que el valor coincide aproximadamente. Las bandas azules son una regla práctica.
- 01:07:54ResiduosResiduo es valor real menos valor ajustado (según como lo define el libro). Un buen modelo tiene residuos sin autocorrelación, media cero y aspecto de ruido blanco. Ejemplo con la acción de Google y el método naïve, que se ajusta bastante bien salvo por un salto brusco.
- 01:14:00ARIMASe presenta ARIMA como mezcla de autorregresivo (AR), media móvil (MA) e integración (I), con parámetros p, d y q. No se explica en detalle por la profundidad del tema.
- 01:16:19Estacionariedad y diferenciaciónUna serie estacionaria se ve igual en cualquier ventana, lo que no ocurre con tendencia o estacionalidad. Se puede diferenciar la serie para volverla estacionaria. El libro propone una receta para usar ARIMA: graficar, estabilizar la varianza, diferenciar, revisar ACF/PACF, ajustar y chequear residuos.
- 01:22:24auto.arimaEjemplo con la demanda eléctrica: se descompone la serie, se quita la parte estacional, se diferencia y se ajusta con auto.arima, comparando modelos por criterio AICc.
- 01:27:41Elección de parametros de ARIMALectura de ACF y PACF para elegir p. El AICc favorece ARIMA(3,1,1) sobre (3,1,0), con valores muy cercanos. Se revisan los residuos con checkresiduals y se genera el forecast con intervalos del 80 % y 95 %. Se explican los parámetros con la notación de operador de rezago.
- 01:33:59ProphetDesarrollado por Facebook, parte de que los datos reales tienen múltiples estacionalidades, cambios de tendencia y feriados. Según el paper, ARIMA automático y otros métodos se ajustan mal a su ejemplo, mientras que Prophet se ajusta bien. Se menciona que está pensado para analistas sin mucho entrenamiento en series de tiempo y que tiene críticas.
- 01:40:36Implementacion de ProphetEn R se usa con pocas líneas (prophet, make_future_dataframe, predict). Los parámetros son intuitivos (estacionalidades, puntos de cambio, feriados). Se intenta ajustar los seguidores del canal, pero faltó usar el acumulado.
- 01:45:00Otros modelosSe mencionan otros métodos del libro: descomposición de series, suavizamiento exponencial, modelos dinámicos y redes neuronales. También la validación cruzada para series de tiempo y que dominar el tema lleva meses.
- 01:47:20CierreSe enlaza al episodio 101 (proyecto de Ragnarok Online), al 44 y al 36 con referencias a series temporales, se recuerda el cambio de horario en Chile y se cierra el episodio.