Як обчислити ковзне середнє за групою в 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