Как рассчитать кумулятивное среднее значение в R


Кумулятивное среднее сообщает нам среднее значение ряда значений до определенной точки.

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

Метод 1: используйте базу R

cum_avg <- cumsum(x) / seq_along(x)

Способ 2: используйте dplyr

library(dplyr)

cum_avg <- cummean(x)

Оба метода возвращают один и тот же результат, но метод dplyr быстрее работает с большими фреймами данных.

В следующих примерах показано, как использовать каждый метод на практике со следующим фреймом данных в R:

#create data frame
df <- data.frame(day=seq(1:16),
 sales=c(3, 6, 0, 2, 4, 1, 0, 1, 4, 7, 3, 3, 8, 3, 5, 5))

#view head of data frame
head(df)

 day sales
1 1 3
2 2 6
3 3 0
4 4 2
5 5 4
6 6 1

Пример 1. Расчет кумулятивного среднего с использованием базы R

Мы можем использовать следующий код, чтобы добавить новый столбец в наш фрейм данных, который показывает совокупное среднее значение продаж:

#add new column that contains cumulative avg. of sales
df$cum_avg_sales <- cumsum(df$sales) / seq_along(df$sales) 

#view updated data frame
df

 day sales cum_avg_sales
1 1 3 3.000000
2 2 6 4.500000
3 3 0 3.000000
4 4 2 2.750000
5 5 4 3.000000
6 6 1 2.666667
7 7 0 2.285714
8 8 1 2.125000
9 9 4 2.333333
10 10 7 2.800000
11 11 3 2.818182
12 12 3 2.833333
13 13 8 3.230769
14 14 3 3.214286
15 15 5 3.333333
16 16 5 3.437500

Мы бы интерпретировали кумулятивные средние значения как:

  • Совокупное среднее значение первой продажи равно 3 .
  • Совокупное среднее значение первых двух продаж равно 4,5 .
  • Совокупное среднее значение первых трех продаж равно 3 .
  • Совокупное среднее значение первых четырех продаж равно 2,75 .

И так далее.

Пример 2. Вычисление кумулятивного среднего значения с помощью dplyr

Мы также можем использовать функцию cummean из пакета dplyr в R для вычисления кумулятивного среднего значения.

В следующем коде показано, как использовать эту функцию для добавления нового столбца в наш фрейм данных, который показывает совокупное среднее значение продаж:

library(dplyr)

#add new column that contains cumulative avg. of sales
df$cum_avg_sales <- cummean(df$sales) 

#view updated data frame
df

 day sales cum_avg_sales
1 1 3 3.000000
2 2 6 4.500000
3 3 0 3.000000
4 4 2 2.750000
5 5 4 3.000000
6 6 1 2.666667
7 7 0 2.285714
8 8 1 2.125000
9 9 4 2.333333
10 10 7 2.800000
11 11 3 2.818182
12 12 3 2.833333
13 13 8 3.230769
14 14 3 3.214286
15 15 5 3.333333
16 16 5 3.437500

Обратите внимание, что этот метод возвращает те же результаты, что и предыдущий метод.

Дополнительные ресурсы

В следующих руководствах объясняется, как рассчитать другие распространенные метрики в R:

Как рассчитать усеченное среднее в R
Как рассчитать среднее геометрическое в R
Как рассчитать средневзвешенное значение в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.