Moyenne exponentielle des pandas

Moyenne exponentielle des pandas

La moyenne mobile, également connue sous le nom de moyenne de roulement ou d'exécution, est un outil d'analyse de données de séries chronologiques qui calcule les moyennes de sous-ensembles distincts de l'ensemble de données. Il est également connu comme une moyenne en mouvement (mm) ou une moyenne roulante car elle comprend le calcul de la moyenne de l'ensemble de données sur une certaine période. La moyenne mobile peut être calculée dans une variété de méthodes, dont l'une est de sélectionner un sous-ensemble défini dans une séquence entière de nombres.

Pandas dataframe.Ewm ()

L'EWMA fournit plus de poids aux observations actuelles ou moins de poids aux données car elle remonte plus loin dans le temps, ce qui lui permet d'enregistrer les tendances récentes relativement plus rapidement que les autres techniques de trouver des moyennes. Le «dataframe.EWM () ”La méthode Pandas est utilisée pour effectuer EMA.

Syntaxe:

pandas.Trame de données.ewm (com = aucun, span = aucun, halflife = aucun, alpha = aucun, min_periods = 0,
ajustement = true, ignore_na = false, axe = 0).moyenne()

Paramètres:

    1. Le premier paramètre, «com», est la réduction du centre de poids.
    2. La «Span» est la dégradation liée à la portée.
    3. La «Halflife» représente le déclin de la demi-vie.
    4. Le paramètre «alpha» est un élément de lissage dont la valeur varie de 0 à 1 inclusivement. Le «min_periods» spécifie le nombre minimum d'observations dans un délai nécessaire pour produire une valeur. Sinon, Na est retourné.
    5. Pour corriger un déséquilibre dans les pondérations relatives comme «ajustement», divisez par un facteur d'ajustement en baisse dans les périodes de départ.
    6. Lors du calcul des poids, les «ignoore_na» ne tiennent pas compte des valeurs manquantes.
    7. «L'axe» est l'axe approprié à utiliser. Les lignes sont identifiées par le nombre 0, tandis que les colonnes sont identifiées par la valeur 1.

Exemple 1: avec paramètre Span

Dans cet exemple, nous avons une analyse DataFrame qui stockent les informations sur les stocks de produits de l'entreprise. Nous avons des colonnes de produits, de quantités et de coûts, et l'entreprise doit estimer la moyenne mobile exponentielle avec une période de 5 jours.

importer des pandas
# Créer des données Pandas pour calculer la moyenne mobile exponentielle
# avec 3 colonnes.
analytique = pandas.DataFrame ('Product': [11,22,33,44,55,66,77,88,99,110],
«Quantité»: [200 455,800,900,900,122 400,700,80,500],
«Coût»: [2400 4500 5090,600,8000,7800,1100,2233,500,1100])
Impression (analytique)
imprimer()
# Calculer la moyenne mobile exponentielle pendant 5 jours
analytique ['5 jours ewm'] = analytique ['quantité'].EWM (Span = 5).moyenne()
Impression (analytique)


Sortir:

Coût de la quantité de produit
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
La quantité de produit coûte 5 jours 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


Explication:

Dans la première sortie, nous avons affiché toute l'analyse. Dans la deuxième sortie, nous calculons la moyenne mobile exponentielle pour la colonne de quantité et stockons les valeurs dans la colonne «EWM 5 jours».

Exemple 2: Visualisez l'EWM

Visualisons la moyenne mobile exponentielle de la colonne «Quantité» sur une période de 5 jours en utilisant le module Matplotlib.

à partir de Matplotlib import pyplot
importer des pandas
analytique = pandas.DataFrame ('Product': [11,22,33,44,55,66,77,88,99,110],
«Quantité»: [200 455,800,900,900,122 400,700,80,500],
«Coût»: [2400 4500 5090,600,8000,7800,1100,2233,500,1100])
# Tracer la quantité réelle
pypllot.Plot (Analytics ['Quantit'], label = 'Quantity')
# Calculer la moyenne mobile exponentielle pendant 5 jours
analytique ['5 jours ewm'] = analytique ['quantité'].EWM (Span = 5).moyenne()
# Tracer la quantité de moyenne mobile exponentielle de 5 jours
pypllot.Plot (Analytics ['5 jours EWM'], label = '5 jours EWM')
# Réglez la légende sur 1
pypllot.légende (loc = 1)


Sortir:



Explication:

Nous calculons la moyenne mobile exponentielle pour la colonne de quantité et stockons les valeurs dans la colonne «5 jours EWM». Maintenant, vous pouvez voir que dans le graphique, la ligne bleue indique la «quantité» réelle et la couleur orange indique la moyenne mobile exponentielle avec une période de 5 jours.

Exemple 3: avec des paramètres de span et de réglage

Estimer la moyenne mobile exponentielle de la colonne «coût» avec une période de 2 jours en définissant le réglage sur False et visualisez.

à partir de Matplotlib import pyplot
importer des pandas
analytique = pandas.DataFrame ('Product': [11,22,33,44,55,66,77,88,99,110],
«Quantité»: [200 455,800,900,900,122 400,700,80,500],
«Coût»: [2400 4500 5090,600,8000,7800,1100,2233,500,1100])
# Tracer le coût réel
pypllot.Plot (Analytics ['Cost'], label = 'achat')
# Calculer la moyenne mobile exponentielle pendant 2 jours
Analytics ['2 jours EWM'] = analytique ['Cost'].ewm (span = 2, ajustement = false).moyenne()
# Tracer le coût mobile exponentiel de 2 jours
pypllot.Plot (Analytics ['2 jours EWM'], label = '2 jours EWM')
# Réglez la légende sur 1
pypllot.légende (loc = 1)
Impression (analytique)


Sortir:

La quantité de produit coûte 2 jours 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



Explication:

Nous stockons les valeurs dans la colonne «2 jours EWM» pour le coût et l'affichage. Enfin, nous visualisons à l'aide du Matplotlib Pyplot.

Exemple 4: avec paramètre ignore_na

Voir la moyenne mobile exponentielle pour la colonne «Produit» ayant aucune valeur avec une période de 3 jours en définissant l'ignore_na sur false.

à partir de Matplotlib import pyplot
importer des pandas
analytique = pandas.DataFrame ('Product': [Aucun, 22,33, aucun, 55, aucun],
«Quantité»: [200 455, aucun, 900 900,122])
# Tracer le coût réel
pypllot.Plot (Analytics ['Product'], Label = 'Product')
# Calculer la moyenne mobile exponentielle avec une durée de 3 jours sans ignorer les valeurs NAN.
Analytics ['3 jours EWM avec nan'] = analytique ['produit'].ewm (span = 3, ignore_na = false).moyenne()
# Terminer le produit de moyenne mobile exponentiel de 3 jours
pypllot.Plot (Analytics ['3 jours EWM avec nan'], label = '3 jours EWM')
# Réglez la légende sur 1
pypllot.légende (loc = 1)


Sortir:


Conclusion

Le concept de calcul de la moyenne mobile pondérée exponentielle est discuté dans cet article. Dans la section Introduction de cette écriture, nous avons expliqué l'idée d'EWM. Le «dataframe.ewm ().La méthode PANDAS moyenne () est fournie avec tous ses paramètres qui sont brièvement décrits. Nous avons effectué quatre exemples. Les stratégies de base pour le calcul des EWM sont élaborées dans cet apprentissage.