Як обчислити експоненціальне ковзне середнє в r
В аналізі часових рядів ковзне середнє – це просто середнє значення кількох попередніх періодів.
Експоненціальне ковзне середнє – це тип ковзного середнього, який надає більшої ваги останнім спостереженням, тобто здатний швидше фіксувати останні тенденції.
У цьому посібнику пояснюється, як обчислити експоненціальне ковзне середнє в R.
Приклад: експоненціальне ковзне середнє в R
Припустимо, що ми маємо наступний кадр даних у 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
Ми можемо використовувати функцію movavg() із пакета pracma , щоб обчислити експоненціально зважену ковзну середню для кількох попередніх періодів.
Ця функція використовує такий синтаксис:
movavg(x, n, type=c(“s”, “t”, “w”, “m”, “e”, “r”))
золото:
- x: часовий ряд у вигляді цифрового вектора
- n: кількість попередніх періодів для використання в середньому
- type: Тип ковзного середнього для обчислення. Ми будемо використовувати «e» для експоненціального зваженого ковзного середнього.
Наприклад, ось як обчислити експоненціально зважену ковзну середню за попередніми чотирма періодами:
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
Ми також можемо використовувати бібліотеку візуалізації ggplot2 для візуалізації продажів відносно 4-денного експоненціально зваженого ковзного середнього:
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))
Червона лінія показує продажі протягом кожного періоду, а синя лінія показує експоненціально зважену ковзну середню.
Додаткові ресурси
Як побудувати кілька стовпців у R
Як усереднити стовпці в R
Як обчислити середнє значення на групу в R