Cara menghitung rata-rata pergerakan di r (dengan contoh)


Dalam analisis deret waktu, rata-rata bergerak mewakili nilai rata-rata sejumlah periode sebelumnya.

Cara termudah untuk menghitung rata-rata bergulir di R adalah dengan menggunakan fungsi rollmean() dari paket zoo :

 library (dplyr)
library (zoo)

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

Contoh khusus ini menghitung rata-rata pergerakan 3 hari untuk kolom berlabel Nilai .

Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.

Contoh: hitung moving average di R

Misalkan kita memiliki kerangka data berikut di R yang menunjukkan penjualan suatu produk selama 10 hari berturut-turut:

 #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

Kita dapat menggunakan sintaks berikut untuk membuat kolom baru bernama avg_sales3 yang menampilkan nilai penjualan rata-rata bergerak selama 3 hari sebelumnya di setiap baris bingkai data:

 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

Catatan : Nilai k pada fungsi rollmean() mengontrol jumlah periode sebelumnya yang digunakan untuk menghitung rata-rata pergerakan.

Kolom avg_sales3 menampilkan nilai penjualan rata-rata bergerak selama 3 periode sebelumnya.

Misalnya nilai pertama 19.66667 dihitung sebagai berikut:

Rata-rata pergerakan 3 hari = (25 + 20 + 14) / 3 = 19,66667

Anda juga dapat menghitung beberapa rata-rata pergerakan sekaligus dengan menggunakan beberapa fungsi rollmean() dalam fungsi mutate() .

Misalnya, kode berikut menunjukkan cara menghitung rata-rata pergerakan penjualan 3 hari dan 4 hari:

 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

Kolom avg_sales3 dan avg_sales4 masing-masing menampilkan rata-rata pergerakan penjualan 3 hari dan 4 hari.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:

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 *