Een voortschrijdend gemiddelde in r berekenen (met voorbeeld)


Bij tijdreeksanalyse vertegenwoordigt een voortschrijdend gemiddelde de gemiddelde waarde van een aantal voorgaande perioden.

De eenvoudigste manier om een voortschrijdend gemiddelde in R te berekenen is door de functie rollmean() uit het zoo- pakket te gebruiken:

 library (dplyr)
library (zoo)

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

In dit specifieke voorbeeld wordt een voortschrijdend gemiddelde over drie dagen berekend voor de kolom Waarden .

Het volgende voorbeeld laat zien hoe u deze functie in de praktijk kunt gebruiken.

Voorbeeld: bereken het voortschrijdend gemiddelde in R

Stel dat we het volgende gegevensframe in R hebben dat de verkoop van een product gedurende 10 opeenvolgende dagen weergeeft:

 #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

We kunnen de volgende syntaxis gebruiken om een nieuwe kolom te maken met de naam avg_sales3 , waarin de voortschrijdende gemiddelde verkoopwaarde van de afgelopen drie dagen in elke rij van het gegevensframe wordt weergegeven:

 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

Opmerking : de waarde van k in de functie rollmean() bepaalt het aantal voorgaande perioden dat wordt gebruikt om het voortschrijdend gemiddelde te berekenen.

De kolom avg_sales3 toont de voortschrijdende gemiddelde verkoopwaarde voor de voorgaande drie perioden.

De eerste waarde van 19,66667 wordt bijvoorbeeld als volgt berekend:

3-daags voortschrijdend gemiddelde = (25 + 20 + 14) / 3 = 19,66667

U kunt ook meerdere voortschrijdende gemiddelden tegelijk berekenen door meerdere rollmean()- functies binnen de mutete()- functie te gebruiken.

De volgende code laat bijvoorbeeld zien hoe u het voortschrijdend gemiddelde van de verkopen over drie en vier dagen berekent:

 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

De kolommen avg_sales3 en avg_sales4 geven respectievelijk het driedaagse en vierdaagse voortschrijdende gemiddelde van de verkopen weer.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Meerdere kolommen plotten in R
Hoe u het gemiddelde kunt nemen over kolommen in R
Hoe het gemiddelde per groep in R te berekenen

Einen Kommentar hinzufügen

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