Cara menghitung rata-rata pergerakan eksponensial di r


Dalam analisis deret waktu, rata-rata pergerakan hanyalah nilai rata-rata dari sejumlah periode sebelumnya.

Rata-rata pergerakan eksponensial adalah jenis rata-rata bergerak yang memberi bobot lebih pada observasi terkini, yang berarti mampu menangkap tren terkini dengan lebih cepat.

Tutorial ini menjelaskan cara menghitung rata-rata pergerakan eksponensial di R.

Contoh: rata-rata pergerakan eksponensial di R

Misalkan kita memiliki bingkai data berikut di 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

Kita dapat menggunakan fungsi movavg() dari paket pracma untuk menghitung rata-rata pergerakan tertimbang secara eksponensial untuk beberapa periode sebelumnya.

Fungsi ini menggunakan sintaks berikut:

bergerak(x, n, ketik=c(“s”, “t”, “w”, “m”, “e”, “r”))

Emas:

  • x : deret waktu dalam bentuk vektor digital
  • n: Jumlah periode sebelumnya yang digunakan sebagai rata-rata
  • type: Jenis rata-rata bergerak yang akan dihitung. Kami akan menggunakan “e” untuk rata-rata pergerakan tertimbang eksponensial.

Misalnya, berikut cara menghitung rata-rata pergerakan tertimbang secara eksponensial menggunakan empat periode sebelumnya:

 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

Kita juga dapat menggunakan pustaka visualisasi ggplot2 untuk memvisualisasikan penjualan relatif terhadap rata-rata pergerakan tertimbang secara eksponensial 4 hari:

 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))

Rata-Rata Pergerakan Tertimbang Eksponensial di R

Garis merah menunjukkan penjualan selama setiap periode dan garis biru menunjukkan rata-rata pergerakan tertimbang secara eksponensial.

Sumber daya tambahan

Cara memplot banyak kolom di R
Cara menghitung rata-rata kolom di R
Cara menghitung mean per grup di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *