10 · Medias móviles
Promediar una ventana deslizante de puntos recientes suaviza el ruido y da el pronosticador más simple posible. El tamaño de la ventana cambia suavidad por retardo — la tensión central de todo suavizador.
Una media móvil reemplaza cada punto por la media de su ventana. Como suavizador remueve ruido; como pronosticador predice los próximos pasos como el promedio de los últimos k puntos. Una ventana mayor suaviza más pero retrasa más — no hay almuerzo gratis.
Sin esto:
Sin un suavizador base no tienes filtro de ruido barato ni un pronóstico ingenuo que superar — y un modelo que no puede ganarle a una media móvil no justifica su complejidad.
La media móvil (MA) es la herramienta más básica de las series temporales, y lleva dos sombreros.
Como suavizador, reemplaza cada punto por la media de una ventana deslizante de ancho k: el punto en el tiempo t se vuelve el promedio de t-k+1 … t. El ruido (que promedia hacia cero) se amortigua mientras sobreviven el nivel y la tendencia lenta subyacentes. En pandas es una línea: ts.rolling(window=k).mean().
Como pronosticador ingenuo, la MA dice: mi mejor estimación del próximo paso es el promedio de las últimas k observaciones. Repite ese promedio en cada paso del horizonte y tienes un pronóstico plano — burdo, pero es la línea base que todo modelo más sofisticado debe superar.
La elección de k lo es todo, y es un compromiso sin escapatoria:
kpequeño (p. ej. 3) — apenas suaviza, sigue de cerca los datos, reacciona rápido, pero deja pasar ruido.kgrande (p. ej. 14) — muy suave, mata el ruido, pero introduce retardo (lag): la línea suavizada va detrás de los giros de la serie en aproximadamente(k-1)/2pasos. En una tendencia al alza una MA ancha lee sistemáticamente bajo.
Una media móvil ponderada (WMA) suaviza esto dando más peso a los puntos recientes (ponderación triangular o exponencial) para que el promedio reaccione más rápido de lo que sugiere su ancho de ventana — la idea que el suavizado exponencial lleva a su conclusión lógica en la próxima lección.
Abajo suavizamos una serie ruidosa con tendencia usando dos tamaños de ventana, cuantificamos cuánto ruido remueve cada uno frente a cuánto retardo agrega, y construimos un pronóstico ingenuo MA para los próximos pasos.
Python (in browser)
rolling().mean() suaviza una serie ruidosa. Una ventana más ancha baja la rugosidad (más ruido promediado) pero va detrás de los giros por más pasos — y el pronóstico ingenuo MA es solo un promedio plano de los últimos k puntos.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Hagamos visible el compromiso retardo-versus-suavidad. Graficamos la serie ruidosa con ambas medias móviles superpuestas: la ventana corta (3) abraza los datos y queda nerviosa, mientras la ventana larga (14) es vidriosamente suave pero arrastra visiblemente detrás de cada subida y bajada. No hay ajuste que te dé ambos — elegir k es escoger en qué punto de ese espectro quieres vivir.
Python (in browser)
La misma serie bajo una media móvil estrecha (3) y ancha (14). La ancha es más suave pero arrastra visiblemente los giros — suavidad y capacidad de respuesta tiran en direcciones opuestas.
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Amplías la ventana de una media móvil de 3 a 21 días. ¿Qué ocurre?
- Una media móvil suaviza reemplazando cada punto por la media de una ventana deslizante (ts.rolling(k).mean()).
- Como pronosticador es una línea base ingenua y plana: los próximos pasos igualan el promedio de los últimos k puntos — el listón que todo modelo debe superar.
- El tamaño de la ventana cambia suavidad por retardo: un k mayor remueve más ruido pero arrastra los giros ~(k-1)/2 pasos. No hay almuerzo gratis.
Las medias móviles alimentan dashboards (promedios de 7 días), ingeniería de features (estadísticas móviles como entradas de modelo) y los pronósticos base contra los que comparas ARIMA y modelos de ML.
Si lo quitas: Sin una línea base de media móvil no puedes saber si un modelo complejo realmente aporta valor o solo disfraza el promedio reciente.