R'de üstel hareketli ortalama nasıl hesaplanır
Zaman serisi analizinde hareketli ortalama , basitçe önceki birkaç periyodun ortalama değeridir.
Üstel hareketli ortalama, son gözlemlere daha fazla ağırlık veren bir hareketli ortalama türüdür; bu, son trendleri daha hızlı yakalayabildiği anlamına gelir.
Bu eğitimde R’de üstel hareketli ortalamanın nasıl hesaplanacağı açıklanmaktadır.
Örnek: R’de üstel hareketli ortalama
R’de aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:
#create data frame df <- data.frame(period=1:10, sales=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19)) #view data frame df period 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
Önceki birkaç döneme ait üstel ağırlıklı hareketli ortalamayı hesaplamak için pracma paketindeki movavg() fonksiyonunu kullanabiliriz.
Bu işlev aşağıdaki sözdizimini kullanır:
movavg(x, n, type=c(“s”, “t”, “w”, “m”, “e”, “r”))
Altın:
- x: dijital vektör biçimindeki zaman serisi
- n: Ortalama için kullanılacak önceki dönemlerin sayısı
- type: Hesaplanacak hareketli ortalama türü. Üstel ağırlıklı hareketli ortalama için “e” kullanacağız.
Örneğin, önceki dört dönemi kullanarak üstel ağırlıklı hareketli ortalamanın nasıl hesaplanacağı aşağıda açıklanmıştır:
library (pracma) #create new column to hold 4-day exponentially weighted moving average df$EWM_4day <- movavg (df$sales, n=4, type=' e ') #view DataFrame df period sales 4dayEWM 0 1 25 25.000000 1 2 20 23.000000 2 3 14 19.400000 3 4 16 18.040000 4 5 27 21.624000 5 6 20 20.974400 6 7 12 17.384640 7 8 15 16.430784 8 9 14 15.458470 9 10 19 16.875082
Satışları 4 günlük üstel ağırlıklı hareketli ortalamaya göre görselleştirmek için ggplot2 görselleştirme kütüphanesini de kullanabiliriz:
library (ggplot2)
library (reshape2)
#melt data into format for easy plotting
df <- melt (df, id.vars = ' period ', variable.name = ' series ')
#plot sales vs. 4-day exponentially weighted moving average
ggplot(df, aes (period, value)) +
geom_line( aes (color=series))
Kırmızı çizgi her dönemdeki satışları, mavi çizgi ise üstel ağırlıklı hareketli ortalamayı gösteriyor.
Ek kaynaklar
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