Pandas Exponential Moving Gjennomsnitt

Pandas Exponential Moving Gjennomsnitt

Det bevegelige gjennomsnittet, også kjent som et rullende eller løpende gjennomsnitt, er et tidsserie-dataanalyseverktøy som beregner gjennomsnittet av forskjellige undergrupper av hele datasettet. Det er også kjent som et bevegelig middelverdi (mm) eller rullende middel fordi det inkluderer beregning av gjennomsnittet av datasettet over en viss periode. Det bevegelige gjennomsnittet kan beregnes i en rekke metoder, hvorav den ene er å velge et definert undergruppe fra en hel sekvens av tall.

Pandas Dataframe.Ewm ()

EWMA gir mer vekt til nåværende observasjoner eller mindre vekt til data når de beveger seg lenger tilbake i tid, slik at den kan registrere de nylige trendene relativt raskere enn de andre teknikkene for å finne gjennomsnitt. “DataFrame.Ewm () ”Pandas -metoden brukes til å utføre EMA.

Syntaks:

Pandas.Dataramme.ewm (com = ingen, span = ingen, halvliv = ingen, alfa = ingen, min_perioder = 0,
Justere = sant, ignorere_na = falsk, akse = 0).mener()

Parametere:

    1. Den første parameteren, "com", er reduksjonen i vektenes sentrum.
    2. "Spennet" er den spennrelaterte nedbrytningen.
    3. "HalfLife" representerer halvlivets tilbakegang.
    4. "Alpha" -parameteren er et utjevningselement hvis verdi varierer fra 0 til 1 inkluderende. “Min_Periods” spesifiserer minimum antall observasjoner i en tidsramme som er nødvendig for å produsere en verdi. Ellers blir Na returnert.
    5. For å rette opp for en ubalanse i relative vektinger som "justere", del med en synkende justeringsfaktor i startperiodene.
    6. Når du beregner vekter, ser "ignor_na" bort fra de manglende verdiene.
    7. "Aksen" er den aktuelle aksen å bruke. Radene identifiseres med tallet 0, mens kolonnene er identifisert med verdien 1.

Eksempel 1: med spennparameter

I dette eksemplet har vi en analyse DataFrame som lagrer selskapets produktbeholdningsinformasjon. Vi har produkt-, mengde- og kostnadskolonner, og selskapet må estimere det eksponentielle glidende gjennomsnittet med et spenn på 5 dager.

Importer pandaer
# Lag Pandas DataFrame for beregning av eksponentiell flyttingsgjennomsnitt
# med 3 kolonner.
Analytics = Pandas.DataFrame ('produkt': [11,22,33,44,55,66,77,88,99,110]],
'Mengde': [200.455.800.900.900.122.400.700.80.500],
'Kostnad': [2400.4500.5090.600.8000.7800.1100.2233.500.1100])
Print (Analytics)
skrive ut()
# Beregn eksponentiell flyttingsgjennomsnitt i 5 dager
Analytics ['5 Day Ewm'] = Analytics ['Quantity'].EWM (Span = 5).mener()
Print (Analytics)


Produksjon:

Produktmengde kostnad
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
Produktmengde koster 5 dagers 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


Forklaring:

I den første utgangen viste vi hele analysen. I den andre utgangen beregner vi det eksponentielle glidende gjennomsnittet for mengden kolonne og lagrer verdiene i "5 dagers EWM" -kolonne.

Eksempel 2: Visualiser EWM

La oss visualisere det eksponentielle glidende gjennomsnittet for "kvantitet" -kolonnen over et spenn på 5 dager ved bruk av matplotlib -modulen.

fra matplotlib import pyplot
Importer pandaer
Analytics = Pandas.DataFrame ('produkt': [11,22,33,44,55,66,77,88,99,110]],
'Mengde': [200.455.800.900.900.122.400.700.80.500],
'Kostnad': [2400.4500.5090.600.8000.7800.1100.2233.500.1100])
# Plott den faktiske mengden
Pyplot.plot (analytics ['kvantitet'], label = 'kvantitet')
# Beregn eksponentiell flyttingsgjennomsnitt i 5 dager
Analytics ['5 Day Ewm'] = Analytics ['Quantity'].EWM (Span = 5).mener()
# Plott den 5 dagers eksponentielle glidende gjennomsnittet
Pyplot.Plot (Analytics ['5 Day Ewm'], Label = '5-Day Ewm')
# Sett legenden til 1
Pyplot.legende (loc = 1)


Produksjon:



Forklaring:

Vi beregner det eksponentielle glidende gjennomsnittet for kvantitetskolonnen og lagrer verdiene i "5 dagers EWM" -kolonne. Nå kan du se at i grafen indikerer den blå linjen den faktiske "mengden" og den oransje fargen indikerer det eksponentielle glidende gjennomsnittet med et spenn på 5 dager.

Eksempel 3: med spenn og juster parametere

Beregn det eksponentielle glidende gjennomsnittet for "kostnad" -kolonnen med et spenn på 2 dager ved å sette justeringen til False og visualisere den.

fra matplotlib import pyplot
Importer pandaer
Analytics = Pandas.DataFrame ('produkt': [11,22,33,44,55,66,77,88,99,110]],
'Mengde': [200.455.800.900.900.122.400.700.80.500],
'Kostnad': [2400.4500.5090.600.8000.7800.1100.2233.500.1100])
# Plott den faktiske kostnaden
Pyplot.plot (analytics ['cost'], label = 'kjøp')
# Beregn eksponentiell flytting av gjennomsnittet i 2 dager
Analytics ['2 Day Ewm'] = Analytics ['Cost'].ewm (span = 2, justere = falsk).mener()
# Plott den 2 dagers eksponentielle flytting av gjennomsnittlig kostnad
Pyplot.Plot (Analytics ['2 Day Ewm'], Label = '2-Day Ewm')
# Sett legenden til 1
Pyplot.legende (loc = 1)
Print (Analytics)


Produksjon:

Produktmengde kostnad 2 dagers 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



Forklaring:

Vi lagrer verdiene i kolonnen “2 dager EWM” for kostnad og visning. Til slutt visualiserer vi ved hjelp av matplotlib pyplot.

Eksempel 4: med ignor_na -parameter

Se det eksponentielle glidende gjennomsnittet for kolonnen "Produkt" som har ingen verdier med et spenn på 3 dager ved å sette Ignore_na til False.

fra matplotlib import pyplot
Importer pandaer
Analytics = Pandas.DataFrame ('Produkt': [Ingen, 22,33, ingen, 55, ingen],
'Mengde': [200.455, ingen, 900.900.122])
# Plott den faktiske kostnaden
Pyplot.plot (analytics ['produkt'], label = 'produkt')
# Beregn eksponentiell bevegelsesgjennomsnitt med spenn på 3 dager uten å ignorere NAN -verdier.
Analytics ['3 dagers ewm med nan'] = Analytics ['Produkt'].ewm (span = 3, ignor_na = falsk).mener()
# Plott det 3 dagers eksponentielle glidende gjennomsnittet
Pyplot.Plot (Analytics ['3 Day Ewm with Nan'], Label = '3-Day Ewm')
# Sett legenden til 1
Pyplot.legende (loc = 1)


Produksjon:


Konklusjon

Konseptet med å beregne det eksponentielle vektede glidende gjennomsnittet er diskutert i denne artikkelen. I introduksjonsdelen av dette forfatterskapet forklarte vi ideen om EWM. “DataFrame.ewm ().Gjennomsnitt () ”Pandas -metoden er utstyrt med alle dens parametere som kort er beskrevet. Vi utførte fire eksempler. De grunnleggende strategiene for beregning av EWM er utdypet i denne læringen.