Cara menghitung korelasi geser di r


Korelasi bergulir adalah korelasi antara dua deret waktu dalam jendela geser. Salah satu manfaat dari jenis korelasi ini adalah Anda dapat memvisualisasikan korelasi antara dua rangkaian waktu dari waktu ke waktu.

Tutorial ini menjelaskan cara menghitung korelasi bergulir di R.

Cara menghitung korelasi bergulir di R

Misalkan kita mempunyai kerangka data berikut yang menampilkan jumlah total produk yang terjual untuk dua produk berbeda ( x dan y ) selama periode 15 bulan:

 #create data
data <- data.frame(month=1:15,
                   x=c(13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20),
                   y=c(22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28))

#view first six rows
head(data)

  month xy
1 1 13 22
2 2 15 24
3 3 16 23
4 4 15 27
5 5 17 26
6 6 20 26

Untuk menghitung korelasi bergulir di R, kita dapat menggunakan fungsi rollapply() dari paket zoo .

Fungsi ini menggunakan sintaks berikut:

rollapply(data, lebar, MENYENANGKAN, menurut.kolom=TRUE)

Emas:

  • data: Nama bingkai data
  • lebar: Integer yang menentukan lebar jendela untuk korelasi geser
  • FUN: Fungsi untuk diterapkan.
  • by.column: Menentukan apakah akan menerapkan fungsi ke setiap kolom secara terpisah. Secara default, ini BENAR, tetapi untuk menghitung korelasi bergulir kita perlu menentukan bahwa ini SALAH.

Berikut cara menggunakan fungsi ini untuk menghitung korelasi penjualan selama 3 bulan antara produk x dan produk y :

 #calculate 3-month rolling correlation between sales for x and y
rollapply(data, width=3, function (x) cor(x[,2],x[,3]), by.column= FALSE )

 [1] 0.6546537 -0.6933752 -0.2401922 -0.8029551 0.8029551 0.9607689
 [7] 0.9819805 0.6546537 0.8824975 0.8170572 -0.9449112 -0.3273268
[13] -0.1889822

Fungsi ini mengembalikan korelasi antara penjualan dua produk selama 3 bulan sebelumnya. Misalnya:

  • Korelasi penjualan bulan 1-3 sebesar 0.6546537 .
  • Korelasi penjualan pada bulan 2-4 sebesar -0.6933752.
  • Korelasi penjualan pada bulan 3-5 sebesar -0.2401922.

Dan seterusnya.

Kita dapat dengan mudah menyesuaikan rumus ini untuk menghitung korelasi bergulir untuk periode waktu yang berbeda. Misalnya, kode berikut menunjukkan cara menghitung korelasi penjualan selama 6 bulan antara kedua produk:

 #calculate 6-month rolling correlation between sales for x and y
rollapply(data, width=6, function (x) cor(x[,2],x[,3]), by.column= FALSE )

 [1] 0.5587415 0.4858553 0.6931033 0.7564756 0.8959291 0.9067715 0.7155418
 [8] 0.7173740 0.7684468 0.4541476

Fungsi ini mengembalikan korelasi antara dua penjualan produk selama 6 bulan sebelumnya. Misalnya:

  • Korelasi penjualan bulan 1-6 sebesar 0.5587415 .
  • Korelasi penjualan pada bulan 2-7 sebesar 0,4858553.
  • Korelasi penjualan pada bulan 3-8 sebesar 0,6931033.

Dan seterusnya.

Komentar

Ingatlah hal-hal berikut saat menggunakan fungsi rollapply():

  • Lebar (yaitu jendela drop-down) harus sama dengan atau lebih besar dari 3 untuk menghitung korelasi.
  • Pada rumus di atas, kita menggunakan cor(x[,2],x[3]) karena dua kolom yang ingin kita hitung korelasinya berada di posisi 2 dan 3 . Sesuaikan angka-angka ini jika kolom yang Anda minati terletak di posisi yang berbeda.

Terkait: Cara Menghitung Korelasi Bergulir di Excel

Tambahkan komentar

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