Як обчислити ковзне середнє за групою в r


В аналізі часових рядів ковзне середнє являє собою середнє значення кількох попередніх періодів.

Ви можете використовувати наступний базовий синтаксис для обчислення групового ковзного середнього в R:

 library (dplyr)
library (zoo)

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

У цьому конкретному прикладі обчислюється 3-періодне ковзне середнє для змінної2 , згрупованої за змінною1 .

Цей код використовує функцію group_by() з пакета dplyr і функцію rollmean() з пакета zoo .

У наступному прикладі показано, як використовувати цю функцію на практиці.

Приклад: обчислення ковзного середнього за групою в R

Припустімо, що ми маємо наступний кадр даних у R, який показує продажі продукту протягом послідовних днів у двох різних магазинах:

 #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

Ми можемо використати такий синтаксис, щоб створити новий стовпець під назвою moving_avg3 , який відображає 3-денне ковзне середнє значення продажів для кожного магазину:

 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

Примітка . Значення k у функції rollmean() контролює кількість попередніх періодів, які використовуються для обчислення ковзного середнього.

Стовпець moving_avg3 відображає ковзне середнє значення продажів за попередні 3 періоди.

Наприклад, ковзне середнє значення продажів за перші 3 дні для магазину A обчислюється таким чином:

3-денне ковзне середнє = (4 + 4 + 3) / 3 = 3,67

Ковзне середнє значення продажів протягом наступних 3 днів для магазину А розраховується таким чином:

3-денне ковзне середнє = (4 + 3 + 5) / 3 = 4

І так далі.

Зауважте, що перші два значення ковзного середнього для кожного магазину є дійсними , оскільки не було достатньо попередніх періодів для використання для ковзного середнього.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в R:

Як побудувати кілька стовпців у R
Як усереднити стовпці в R
Як обчислити середнє значення на групу в R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *