El promedio móvil, también conocido como promedio de rodaje o ejecución, es una herramienta de análisis de datos de la serie temporal que calcula los promedios de subconjuntos distintos de todo el conjunto de datos. También se conoce como media móvil (mm) o media rodante porque incluye calcular la media del conjunto de datos durante cierto período. El promedio móvil se puede calcular en una variedad de métodos, uno de los cuales es seleccionar un subconjunto definido de una secuencia completa de números.
Pandas DataFrame.Ewm ()
EWMA proporciona más peso a las observaciones actuales o menos peso a los datos a medida que se mueve más atrás en el tiempo, lo que le permite registrar las tendencias recientes más rápido que las otras técnicas de búsqueda de promedios. El "marco de datos.El método pandas ewm () "se utiliza para realizar EMA.
Sintaxis:
pandas.Marco de datos.ewm (com = none, span = none, halflife = none, alfa = none, min_periods = 0,
ajustar = true, ignore_na = false, axis = 0).significar()
Parámetros:
Ejemplo 1: con el parámetro SPAN
En este ejemplo, tenemos un marco de datos de análisis que almacena la información de las acciones del producto de la empresa. Tenemos columnas de productos, cantidad y costos, y la empresa necesita estimar el promedio móvil exponencial con un lapso de 5 días.
importación de pandas
# Crear pandas DataFrame para calcular el promedio móvil exponencial
# con 3 columnas.
Análisis = pandas.DataFrame ('Producto': [11,22,33,44,55,66,77,88,99,110],
'Cantidad': [200,455,800,900,900,122,400,700,80,500],
'Costo': [2400,4500,5090,600,8000,7800,1100,2233,500,1100])
Imprimir (Análisis)
imprimir()
# Calcule el promedio móvil exponencial durante 5 días
Análisis ['5 días EWM'] = Analytics ['Cantidad'].EWM (SPAN = 5).significar()
Imprimir (Análisis)
Producción:
Costo de cantidad del producto
0 11 200 2400
1 22 455 4500
2 33 800 5090
3 44 900 600
4 55 900 8000
5 66 122 7800
6 77 400 1100
7 88 700 2233
8 99 80 500
9 110 500 1100
Costo de la cantidad del producto 5 días EWM
0 11 200 2400 200.000000
1 22 455 4500 353.000000
2 33 800 5090 564.736842
3 44 900 600 704.000000
4 55 900 8000 779.241706
5 66 122 7800 539.076692
6 77 400 1100 489.835843
7 88 700 2233 562.734972
8 99 80 500 397.525846
9 110 500 1100 432.286704
Explicación:
En la primera salida, mostramos todo el análisis. En la segunda salida, calculamos el promedio móvil exponencial para la columna de cantidad y almacenamos los valores en la columna "EWM de 5 días".
Ejemplo 2: Visualizar el EWM
Visualizemos el promedio móvil exponencial para la columna "cantidad" en un lapso de 5 días usando el módulo matplotlib.
de matplotlib import pyplot
importación de pandas
Análisis = pandas.DataFrame ('Producto': [11,22,33,44,55,66,77,88,99,110],
'Cantidad': [200,455,800,900,900,122,400,700,80,500],
'Costo': [2400,4500,5090,600,8000,7800,1100,2233,500,1100])
# Traza la cantidad real
pyplot.Plot (Analytics ['Cantidad'], Label = 'Cantidad')
# Calcule el promedio móvil exponencial durante 5 días
Análisis ['5 días EWM'] = Analytics ['Cantidad'].EWM (SPAN = 5).significar()
# Traza la cantidad de promedio móvil exponencial de 5 días de 5 días
pyplot.Plot (Analytics ['5 Day EWM'], Label = '5 días EWM')
# Establezca la leyenda en 1
pyplot.leyenda (loc = 1)
Producción:
Explicación:
Calculamos el promedio móvil exponencial para la columna de cantidad y almacenamos los valores en la columna "5 días EWM". Ahora, puede ver que en el gráfico, la línea azul indica la "cantidad" real y el color naranja indica el promedio móvil exponencial con un lapso de 5 días.
Ejemplo 3: con parámetros de span y ajuste
Estima el promedio móvil exponencial para la columna de "costo" con un lapso de 2 días estableciendo el ajuste a falso y visualizarlo.
de matplotlib import pyplot
importación de pandas
Análisis = pandas.DataFrame ('Producto': [11,22,33,44,55,66,77,88,99,110],
'Cantidad': [200,455,800,900,900,122,400,700,80,500],
'Costo': [2400,4500,5090,600,8000,7800,1100,2233,500,1100])
# Traza el costo real
pyplot.Plot (Analytics ['Costo'], Label = 'Compra')
# Calcule el promedio móvil exponencial durante 2 días
Analytics ['2 días EWM'] = Analytics ['Costo'].ewm (span = 2, ajuste = falso).significar()
# Traza el costo de promedio móvil exponencial de 2 días
pyplot.Plot (Analytics ['2 Day EWM'], etiqueta = 'EWM de 2 días')
# Establezca la leyenda en 1
pyplot.leyenda (loc = 1)
Imprimir (Análisis)
Producción:
Costo de cantidad del producto 2 días EWM
0 11 200 2400 2400.000000
1 22 455 4500 3800.000000
2 33 800 5090 4660.000000
3 44 900 600 1953.333333
4 55 900 8000 5984.444444
5 66 122 7800 7194.814815
6 77 400 1100 3131.604938
7 88 700 2233 2532.534979
8 99 80 500 1177.511660
9 110 500 1100 1125.837220
Explicación:
Almacenamos los valores en la columna "EWM de 2 días" para costos y visualización. Finalmente, visualizamos usando el pyplot matplotlib.
Ejemplo 4: con el parámetro Ignore_NA
Vea el promedio móvil exponencial para la columna "producto" que no tiene valores con un lapso de 3 días estableciendo el Ignore_NA en falso.
de matplotlib import pyplot
importación de pandas
Análisis = pandas.DataFrame ('Producto': [Ninguno, 22,33, Ninguno, 55, Ninguno],
'Cantidad': [200,455, ninguno, 900,900,122])
# Traza el costo real
pyplot.Plot (Analytics ['Product'], Label = 'Product')
# Calcule el promedio móvil exponencial con un tramo de 3 días sin ignorar los valores de NAN.
Análisis ['3 días EWM con nan'] = Analytics ['Producto'].ewm (span = 3, ignore_na = false).significar()
# Traza el producto de promedio móvil exponencial de 3 días
pyplot.Plot (Analytics ['3 días EWM con nan'], etiqueta = 'EWM de 3 días))
# Establezca la leyenda en 1
pyplot.leyenda (loc = 1)
Producción:
Conclusión
El concepto de calcular el promedio móvil ponderado exponencial se discute en este artículo. En la sección Introducción de este escrito, explicamos la idea de EWM. El "marco de datos.ewm ().MEDIA () "PANDAS se proporciona con todos sus parámetros que se describen brevemente. Realizamos cuatro ejemplos. Las estrategias básicas para calcular EWM se elaboran en este aprendizaje.