So berechnen sie einen exponentiellen gleitenden durchschnitt in r


Bei der Zeitreihenanalyse ist ein gleitender Durchschnitt einfach der Durchschnittswert mehrerer früherer Perioden.

Ein exponentieller gleitender Durchschnitt ist eine Art gleitender Durchschnitt, der den jüngsten Beobachtungen mehr Gewicht beimisst, was bedeutet, dass er in der Lage ist, aktuelle Trends schneller zu erfassen.

In diesem Tutorial wird erklärt, wie man einen exponentiellen gleitenden Durchschnitt in R berechnet.

Beispiel: exponentieller gleitender Durchschnitt in R

Angenommen, wir haben den folgenden Datenrahmen in R:

 #create data frame
df <- data.frame(period=1:10,
                 sales=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19))

#view data frame
df

   period sales
1 1 25
2 2 20
3 3 14
4 4 16
5 5 27
6 6 20
7 7 12
8 8 15
9 9 14
10 10 19

Wir können die Funktion movavg() aus dem Pracma- Paket verwenden, um den exponentiell gewichteten gleitenden Durchschnitt für eine Reihe früherer Perioden zu berechnen.

Diese Funktion verwendet die folgende Syntax:

movavg(x, n, type=c(„s“, „t“, „w“, „m“, „e“, „r“))

Gold:

  • x: Zeitreihe in Form eines digitalen Vektors
  • n: Anzahl der vorherigen Perioden, die für den Durchschnitt verwendet werden sollen
  • Typ: Art des zu berechnenden gleitenden Durchschnitts. Wir verwenden „e“ für den exponentiell gewichteten gleitenden Durchschnitt.

So berechnen Sie beispielsweise den exponentiell gewichteten gleitenden Durchschnitt anhand der vorherigen vier Perioden:

 library (pracma)

#create new column to hold 4-day exponentially weighted moving average
df$EWM_4day <- movavg (df$sales, n=4, type=' e ')

#view DataFrame 
df

        period sales 4dayEWM
0 1 25 25.000000
1 2 20 23.000000
2 3 14 19.400000
3 4 16 18.040000
4 5 27 21.624000
5 6 20 20.974400
6 7 12 17.384640
7 8 15 16.430784
8 9 14 15.458470
9 10 19 16.875082

Wir können auch die Visualisierungsbibliothek ggplot2 verwenden, um Verkäufe im Verhältnis zum exponentiell gewichteten gleitenden 4-Tage-Durchschnitt zu visualisieren:

 library (ggplot2)
library (reshape2)

#melt data into format for easy plotting
df <- melt (df, id.vars = ' period ', variable.name = ' series ')

#plot sales vs. 4-day exponentially weighted moving average
ggplot(df, aes (period, value)) +
  geom_line( aes (color=series))

Exponentiell gewichteter gleitender Durchschnitt in R

Die rote Linie zeigt die Verkäufe während jedes Zeitraums und die blaue Linie zeigt den exponentiell gewichteten gleitenden Durchschnitt.

Zusätzliche Ressourcen

So zeichnen Sie mehrere Spalten in R
So mitteln Sie den Durchschnitt über Spalten in R
So berechnen Sie den Mittelwert pro Gruppe in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert