Métodos de Suavizamiento Promedio movil - Series de Tiempo
La teoría de los métodos de suavizamiento se refiere a un conjunto de técnicas estadísticas utilizadas para reducir la variabilidad o "ruido" en los datos, con el objetivo de resaltar patrones o tendencias importantes. Estos métodos son ampliamente utilizados en análisis de series temporales, procesamiento de señales, y en varios campos de la ciencia de datos. Algunos de los métodos de suavizamiento más comunes incluyen:
Promedio Móvil (Moving Average): Calcula el promedio de un número específico de valores consecutivos a lo largo de la serie de tiempo. Esto suaviza las fluctuaciones a corto plazo y resalta las tendencias a largo plazo.
Suavizado Exponencial (Exponential Smoothing): Asigna pesos decrecientes a los datos más antiguos. Hay varias variantes de este método, como el suavizado exponencial simple, doble y triple, cada uno añadiendo más complejidad para capturar tendencias y patrones estacionales.
Filtros de Suavizamiento: Como los filtros de media móvil y los filtros de Gauss, que aplican una función matemática (por ejemplo, una distribución gaussiana) para ponderar los valores de los datos al calcular el promedio.
Regresión de Mínimos Cuadrados Locales (Locally Weighted Scatterplot Smoothing - LOWESS): Utiliza regresiones lineales ponderadas localmente para suavizar los datos, proporcionando un ajuste más flexible que puede adaptarse a cambios en la tendencia de los datos.
Suavizado de Splines: Implica el uso de funciones matemáticas denominadas splines para crear una función suave que se aproxima a los datos. Los splines pueden ser lineales, cuadráticos, cúbicos, etc., y permiten un alto grado de flexibilidad.
Se realizaran ejemplos relacionados al método de promedio móvil con código python:
Promedio móvil.-
Un promedio móvil es calculado como el promedio de un número específico de valores pasados. Por ejemplo, un promedio móvil de 3 períodos en el tiempo $t$ sería el promedio de los datos en los tiempos $t-1$, $t-2$, $t-3$.
Tipos de Promedios Móviles:
Simple (SMA): Calcula el promedio aritmético de un número determinado de valores.
Ponderado (WMA): Asigna diferentes pesos a los valores en la ventana, generalmente dando más importancia a los datos más recientes.
Exponencial (EMA): Similar al WMA, pero con una fórmula que asigna pesos de manera exponencial, dando aún más énfasis a los valores más recientes.
Ejemplo
Cuya salida es:
Precio SMA_5 0 22 NaN 1 24 NaN 2 25 NaN 3 27 NaN 4 26 24.8 5 28 26.0 6 29 27.0 7 30 28.0 8 31 28.8 9 33 30.2 10 32 31.0 11 31 31.4
Ejemplo Nro 2.-
Se genera datos Simulados: Utilizamos numpy para crear 100 puntos de datos que siguen una distribución normal y los acumulamos para simular una serie temporal con cierta tendencia y variabilidad.
Convertimos los Datos a un DataFrame de Pandas: Esto nos permite utilizar las funciones de Pandas para el cálculo del promedio móvil.
Calculamos el Promedio Móvil Simple (SMA): Calculamos dos SMA con diferentes tamaños de ventana: uno con una ventana de 5 periodos (SMA_5) y otro con una ventana de 10 periodos (SMA_10).
Visualizamos los Resultados: Creamos un gráfico para visualizar los datos originales junto con los valores del SMA de 5 y 10 periodos.
Resultados del DataFrame: Las primeras filas del DataFrame muestran los valores originales y los valores de SMA. Los valores NaN indican que no hay suficientes datos para calcular el SMA en esos puntos (por ejemplo, no se puede calcular un SMA de 5 periodos hasta que tengamos al menos 5 datos).
Ejemplo python:
Como se observa los datos simulados se observan en color azul, tambien se obsera el cálculo del méotodo de suavizamiento promedio móvil con 5 y 10 periodos, que se observan en color anaranjado y verde.
Observando el data frame las primeras 15 filas se observa el procedimientos que para los primero 5 y 10 observaciones se tienen Valores perdidos tal como se indico en la parte teórica.
| Valor | SMA_5 | SMA_10 | |
|---|---|---|---|
| 0 | 1.764052 | NaN | NaN |
| 1 | 2.164210 | NaN | NaN |
| 2 | 3.142948 | NaN | NaN |
| 3 | 5.383841 | NaN | NaN |
| 4 | 7.251399 | 3.941290 | NaN |
| 5 | 6.274121 | 4.843303 | NaN |
| 6 | 7.224209 | 5.855303 | NaN |
| 7 | 7.072852 | 6.641284 | NaN |
| 8 | 6.969633 | 6.958443 | NaN |
| 9 | 7.380232 | 6.984209 | 5.462750 |
| 10 | 7.524275 | 7.234240 | 6.038772 |
| 11 | 8.978549 | 7.585108 | 6.720206 |
| 12 | 9.739587 | 8.118455 | 7.379870 |
| 13 | 9.861262 | 8.696781 | 7.827612 |
| 14 | 10.305125 | 9.281759 | 8.132984 |

Comentarios
Publicar un comentario