Jak obliczyć wykładniczą średnią ruchomą w r
W analizie szeregów czasowych średnia ruchoma jest po prostu średnią wartością kilku poprzednich okresów.
Wykładnicza średnia krocząca to rodzaj średniej ruchomej, która przywiązuje większą wagę do ostatnich obserwacji, co oznacza, że jest w stanie szybciej uchwycić najnowsze trendy.
W tym samouczku wyjaśniono, jak obliczyć wykładniczą średnią kroczącą w R.
Przykład: wykładnicza średnia krocząca w R
Załóżmy, że mamy następującą ramkę danych w R:
#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
Możemy użyć funkcji movavg() z pakietu Pracma , aby obliczyć wykładniczo ważoną średnią ruchomą dla pewnej liczby poprzednich okresów.
Ta funkcja wykorzystuje następującą składnię:
movavg(x, n, typ=c(„s”, „t”, „w”, „m”, „e”, „r”))
Złoto:
- x: szereg czasowy w postaci wektora cyfrowego
- n: Liczba poprzednich okresów, które mają zostać użyte do obliczenia średniej
- type: Typ średniej ruchomej do obliczenia. Będziemy używać „e” dla wykładniczej ważonej średniej kroczącej.
Na przykład, oto jak obliczyć wykładniczą ważoną średnią ruchomą na podstawie poprzednich czterech okresów:
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
Możemy również użyć biblioteki wizualizacji ggplot2 do wizualizacji sprzedaży w stosunku do 4-dniowej wykładniczej średniej kroczącej:
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))
Czerwona linia pokazuje sprzedaż w każdym okresie, a niebieska linia pokazuje wykładniczą ważoną średnią ruchomą.
Dodatkowe zasoby
Jak wykreślić wiele kolumn w R
Jak uśredniać kolumny w R
Jak obliczyć średnią na grupę w R