So berechnen sie einen gleitenden durchschnitt in r (mit beispiel)


Bei der Zeitreihenanalyse stellt ein gleitender Durchschnitt den Durchschnittswert mehrerer vorangegangener Perioden dar.

Der einfachste Weg, einen gleitenden Durchschnitt in R zu berechnen, ist die Verwendung der Funktion rollmean() aus dem zoo- Paket:

 library (dplyr)
library (zoo)

#calculate 3-day rolling average
df %>%
  mutate(rolling_avg = rollmean(values, k= 3 , fill=NA, align=' right '))

In diesem speziellen Beispiel wird ein gleitender 3- Tage-Durchschnitt für die Spalte mit der Bezeichnung „Werte“ berechnet.

Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.

Beispiel: Berechnen Sie den gleitenden Durchschnitt in R

Angenommen, wir haben den folgenden Datenrahmen in R, der die Verkäufe eines Produkts an 10 aufeinanderfolgenden Tagen zeigt:

 #create data frame
df <- data. frame (day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19))

#view data frame
df

   day 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 folgende Syntax verwenden, um eine neue Spalte mit dem Namen avg_sales3 zu erstellen, die den gleitenden durchschnittlichen Verkaufswert für die letzten drei Tage in jeder Zeile des Datenrahmens anzeigt:

 library (dplyr)
library (zoo)

#calculate 3-day rolling average of sales
df %>%
  mutate(avg_sales3 = rollmean(sales, k= 3 , fill=NA, align=' right '))

   day sales avg_sales3
1 1 25 NA
2 2 20 NA
3 3 14 19.66667
4 4 16 16.66667
5 5 27 19.00000
6 6 20 21.00000
7 7 12 19.66667
8 8 15 15.66667
9 9 14 13.66667
10 10 19 16.00000

Hinweis : Der Wert von k in der Funktion rollmean() steuert die Anzahl der vorherigen Perioden, die zur Berechnung des gleitenden Durchschnitts verwendet werden.

Die Spalte avg_sales3 zeigt den gleitenden durchschnittlichen Umsatzwert für die letzten drei Zeiträume an.

Der erste Wert von 19,66667 wird beispielsweise wie folgt berechnet:

Gleitender 3-Tage-Durchschnitt = (25 + 20 + 14) / 3 = 19,66667

Sie können auch mehrere gleitende Durchschnitte gleichzeitig berechnen, indem Sie mehrere rollmean()- Funktionen innerhalb der mutate()- Funktion verwenden.

Der folgende Code zeigt beispielsweise, wie der gleitende 3- und 4-Tages-Durchschnitt der Verkäufe berechnet wird:

 library (dplyr)
library (zoo)

#calculate 3-day and 4-day rolling average of sales
df %>%
  mutate(avg_sales3 = rollmean(sales, k= 3 , fill=NA, align=' right '),
         avg_sales4 = rollmean(sales, k= 4 , fill=NA, align=' right '))

   day sales avg_sales3 avg_sales4
1 1 25 NA NA
2 2 20 NA NA
3 3 14 19.66667 NA
4 4 16 16.66667 18.75
5 5 27 19.00000 19.25
6 6 20 21.00000 19.25
7 7 12 19.66667 18.75
8 8 15 15.66667 18.50
9 9 14 13.66667 15.25
10 10 19 16.00000 15.00

Die Spalten avg_sales3 und avg_sales4 zeigen den gleitenden 3-Tages- bzw. 4-Tages-Durchschnitt der Verkäufe an.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

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