Como calcular uma média cumulativa em r


Uma média cumulativa nos diz a média de uma série de valores até um determinado ponto.

Você pode usar os seguintes métodos para calcular a média cumulativa dos valores em R:

Método 1: Use Base R

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

Método 2: use dplyr

 library (dplyr)

cum_avg <- cummean(x)

Ambos os métodos retornam exatamente o mesmo resultado, mas o método dplyr tende a ter um desempenho mais rápido em grandes quadros de dados.

Os exemplos a seguir mostram como usar cada método na prática com o seguinte quadro de dados em 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

Exemplo 1: Calcule a média acumulada usando a base R

Podemos usar o código a seguir para adicionar uma nova coluna ao nosso quadro de dados que exibe a média acumulada de vendas:

 #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

Interpretaríamos os valores médios cumulativos como:

  • A média acumulada do valor das primeiras vendas é 3 .
  • A média acumulada dos dois primeiros valores de vendas é de 4,5 .
  • A média acumulada dos três primeiros valores de vendas é 3 .
  • A média acumulada dos quatro primeiros valores de vendas é de 2,75 .

E assim por diante.

Exemplo 2: Calcular a média cumulativa usando dplyr

Também podemos usar a função cummean do pacote dplyr em R para calcular uma média cumulativa.

O código a seguir mostra como usar esta função para adicionar uma nova coluna ao nosso quadro de dados que exibe a média acumulada de vendas:

 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

Observe que este método retorna exatamente os mesmos resultados do método anterior.

Recursos adicionais

Os tutoriais a seguir explicam como calcular outras métricas comuns em R:

Como calcular uma média aparada em R
Como calcular a média geométrica em R
Como calcular uma média ponderada em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *