R'de gruba göre hareketli ortalama nasıl hesaplanır


Zaman serisi analizinde hareketli ortalama , önceki dönemlerin ortalama değerini temsil eder.

R’de bir grup hareketli ortalamasını hesaplamak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 library (dplyr)
library (zoo)

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

Bu özel örnek, değişken1’e göre gruplandırılmış değişken2’nin 3 dönemlik hareketli ortalamasını hesaplar.

Bu kod, dplyr paketindeki group_by() işlevini ve zoo paketindeki rollmean() işlevini kullanır.

Aşağıdaki örnekte bu fonksiyonun pratikte nasıl kullanılacağı gösterilmektedir.

Örnek: R’de gruba göre hareketli ortalamayı hesaplama

R’de bir ürünün ardışık günlerde iki farklı mağazadaki satışlarını gösteren aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:

 #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

Her mağaza için 3 günlük hareketli ortalama satış değerini görüntüleyen move_avg3 adında yeni bir sütun oluşturmak için aşağıdaki sözdizimini kullanabiliriz:

 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

Not : rollmean() işlevindeki k değeri, hareketli ortalamayı hesaplamak için kullanılan önceki dönemlerin sayısını kontrol eder.

Moving_avg3 sütunu önceki 3 döneme ait hareketli ortalama satış değerini görüntüler.

Örneğin A mağazasının ilk 3 gündeki satışlarının hareketli ortalaması şu şekilde hesaplanır:

3 günlük hareketli ortalama = (4 + 4 + 3) / 3 = 3,67

A mağazasının önümüzdeki 3 gündeki hareketli satış ortalaması şu şekilde hesaplanır:

3 günlük hareketli ortalama = (4 + 3 + 5) / 3 = 4

Ve benzeri.

Her mağaza için ilk iki hareketli ortalama değerinin NA olduğunu unutmayın çünkü hareketli ortalama için kullanılacak yeterli sayıda önceki dönem yoktu.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de birden fazla sütun nasıl çizilir
R’deki sütunların ortalaması nasıl alınır?
R’de grup başına ortalama nasıl hesaplanır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir