Jak obliczyć średnią ruchomą według grupy w r


W analizie szeregów czasowych średnia ruchoma reprezentuje średnią wartość z kilku poprzednich okresów.

Aby obliczyć grupową średnią ruchomą w R, możesz użyć następującej podstawowej składni:

 library (dplyr)
library (zoo)

#calculate moving average by group
df %>%
  group_by(variable1)
  mutate(moving_avg = rollmean(variable2, k= 3 , fill=NA, align=' right '))

W tym konkretnym przykładzie obliczana jest 3-okresowa średnia ruchoma zmiennej2 , pogrupowana według zmiennej1 .

W tym kodzie zastosowano funkcję group_by() z pakietu dplyr i funkcję rollmean() z pakietu zoo .

Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.

Przykład: Oblicz średnią ruchomą według grupy w R

Załóżmy, że mamy następującą ramkę danych w R, która pokazuje sprzedaż produktu przez kolejne dni w dwóch różnych sklepach:

 #create data frame
df <- data. frame (store=rep(c(' A ', ' B '), each= 7 ),
                 sales=c(4, 4, 3, 5, 6, 5, 7, 4, 8, 7, 2, 5, 4, 6))

#view data frame
df

   blind sales
1 to 4
2 to 4
3 to 3
4 to 5
5 to 6
6 to 5
7 to 7
8 B 4
9 B 8
10 B 7
11 B 2
12 B 5
13 B 4
14 B 6

Możemy użyć następującej składni, aby utworzyć nową kolumnę o nazwiemoving_avg3 , która wyświetla 3-dniową średnią ruchomą wartość sprzedaży dla każdego sklepu:

 library (dplyr)
library (zoo)

#calculate 3-day moving average of sales, grouped by store
df %>%
  group_by(store) %>%
  mutate(moving_avg3 = rollmean(sales, k= 3 , fill=NA, align=' right '))

# A tibble: 14 x 3
# Groups: store[2]
   store sales moving_avg3
           
 1 A 4 NA   
 2 A 4 NA   
 3 to 3 3.67
 4 to 5 4   
 5 to 6 4.67
 6 to 5 5.33
 7 to 7 6   
 8 B 4 NA   
 9 B 8 NA   
10 B 7 6.33
11 B 2 5.67
12 B 5 4.67
13 B 4 3.67
14 B 6 5

Uwaga : Wartość k w funkcji rollmean() kontroluje liczbę poprzednich okresów używanych do obliczenia średniej ruchomej.

Kolumnamoving_avg3 wyświetla średnią ruchomą wartość sprzedaży z poprzednich 3 okresów.

Na przykład średnią kroczącą sprzedaży w ciągu pierwszych 3 dni dla sklepu A oblicza się w następujący sposób:

3-dniowa średnia krocząca = (4 + 4 + 3) / 3 = 3,67

Średnią ruchomą sprzedaży w ciągu najbliższych 3 dni dla sklepu A oblicza się w następujący sposób:

3-dniowa średnia krocząca = (4 + 3 + 5) / 3 = 4

I tak dalej.

Należy pamiętać, że pierwsze dwie wartości średniej ruchomej dla każdego sklepu to NA , ponieważ nie było wystarczającej liczby poprzednich okresów do wykorzystania dla średniej ruchomej.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak wykreślić wiele kolumn w R
Jak uśredniać kolumny w R
Jak obliczyć średnią na grupę w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *