R'de hareketli ortalama nasıl hesaplanır (örnekle)


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

R’de hareketli ortalamayı hesaplamanın en kolay yolu, zoo paketindeki rollmean() işlevini kullanmaktır:

 library (dplyr)
library (zoo)

#calculate 3-day rolling average
df %>%
  mutate(rolling_avg = rollmean(values, k= 3 , fill=NA, align=' right '))

Bu özel örnek, Değerler etiketli sütun için 3 günlük hareketli ortalamayı hesaplar.

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

Örnek: R cinsinden hareketli ortalamayı hesaplayın

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

 #create data frame
df <- data. frame (day=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
                 sales=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19))

#view data frame
df

   day sales
1 1 25
2 2 20
3 3 14
4 4 16
5 5 27
6 6 20
7 7 12
8 8 15
9 9 14
10 10 19

Veri çerçevesinin her satırında önceki 3 güne ait hareketli ortalama satış değerini görüntüleyen avg_sales3 adında yeni bir sütun oluşturmak için aşağıdaki sözdizimini kullanabiliriz:

 library (dplyr)
library (zoo)

#calculate 3-day rolling average of sales
df %>%
  mutate(avg_sales3 = rollmean(sales, k= 3 , fill=NA, align=' right '))

   day sales avg_sales3
1 1 25 NA
2 2 20 NA
3 3 14 19.66667
4 4 16 16.66667
5 5 27 19.00000
6 6 20 21.00000
7 7 12 19.66667
8 8 15 15.66667
9 9 14 13.66667
10 10 19 16.00000

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

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

Örneğin 19,66667’nin ilk değeri şu şekilde hesaplanır:

3 günlük hareketli ortalama = (25 + 20 + 14) / 3 = 19,66667

Ayrıca mutate() işlevi içindeki birden çok rollmean() işlevini kullanarak birden çok hareketli ortalamayı aynı anda hesaplayabilirsiniz.

Örneğin aşağıdaki kod, satışların 3 günlük ve 4 günlük hareketli ortalamasının nasıl hesaplanacağını gösterir:

 library (dplyr)
library (zoo)

#calculate 3-day and 4-day rolling average of sales
df %>%
  mutate(avg_sales3 = rollmean(sales, k= 3 , fill=NA, align=' right '),
         avg_sales4 = rollmean(sales, k= 4 , fill=NA, align=' right '))

   day sales avg_sales3 avg_sales4
1 1 25 NA NA
2 2 20 NA NA
3 3 14 19.66667 NA
4 4 16 16.66667 18.75
5 5 27 19.00000 19.25
6 6 20 21.00000 19.25
7 7 12 19.66667 18.75
8 8 15 15.66667 18.50
9 9 14 13.66667 15.25
10 10 19 16.00000 15.00

avg_sales3 ve avg_sales4 sütunları sırasıyla satışların 3 günlük ve 4 günlük hareketli ortalamasını gösterir.

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