Promedio móvil exponencial de pandas

Promedio móvil exponencial de pandas

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:

    1. El primer parámetro, "com", es la reducción en el centro de peso.
    2. El "tramo" es la degradación relacionada con el tramo.
    3. La "vida media" representa el declive de la vida media.
    4. El parámetro "alfa" es un elemento suavizado cuyo valor varía de 0 a 1 inclusivamente. El "min_periods" especifica el número mínimo de observaciones en un plazo que se necesita para producir un valor. De lo contrario, se devuelve NA.
    5. Para corregir un desequilibrio en las ponderaciones relativas como "ajustar", dividir por un factor de ajuste en declive en los períodos de inicio.
    6. Al calcular los pesos, el "ignorar_na" ignora los valores faltantes.
    7. El "eje" es el eje apropiado para usar. Las filas se identifican por el número 0, mientras que las columnas están identificadas por el valor 1.

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.