Cara menghitung korelasi bergulir di panda: beserta contoh
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 dan memvisualisasikan korelasi bergulir untuk DataFrame pandas dengan Python.
Cara menghitung korelasi bergulir di panda
Misalkan kita mempunyai kerangka data berikut yang menampilkan jumlah total produk yang terjual untuk dua produk berbeda ( x dan y ) selama periode 15 bulan:
import pandas as pd import numpy as np #createDataFrame df = pd.DataFrame({'month': np. arange (1, 16), 'x': [13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20], 'y': [22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28]}) #view first six rows df. head () 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 panda, kita dapat menggunakan fungsi Rolling.corr() .
Fungsi ini menggunakan sintaks berikut:
df[‘x’].bergulir(lebar).corr(df[‘y’])
Emas:
- df: Nama bingkai data
- lebar: Integer yang menentukan lebar jendela untuk korelasi geser
- x, y: dua nama kolom untuk menghitung korelasi geser antar keduanya
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 df[' x ']. rolling (3). corr (df[' y ']) 0 NaN 1 NaN 2 0.654654 3 -0.693375 4 -0.240192 5 -0.802955 6 0.802955 7 0.960769 8 0.981981 9 0.654654 10 0.882498 11 0.817057 12 -0.944911 13 -0.327327 14 -0.188982 dtype:float64
Fungsi ini mengembalikan korelasi antara penjualan dua produk selama 3 bulan sebelumnya. Misalnya:
- Korelasi penjualan bulan 1-3 sebesar 0,654654 .
- Korelasi penjualan pada bulan 2-4 sebesar -0.693375.
- Korelasi penjualan pada bulan 3-5 sebesar -0.240192.
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 df[' x ']. rolling (6). corr (df[' y ']) 0 NaN 1 NaN 2 NaN 3 NaN 4 NaN 5 0.558742 6 0.485855 7 0.693103 8 0.756476 9 0.895929 10 0.906772 11 0.715542 12 0.717374 13 0.768447 14 0.454148 dtype:float64
Fungsi ini mengembalikan korelasi antara dua penjualan produk selama 6 bulan sebelumnya. Misalnya:
- Korelasi penjualan bulan 1-6 sebesar 0,558742 .
- Korelasi penjualan pada bulan 2-7 sebesar 0,485855.
- Korelasi penjualan pada bulan 3-8 sebesar 0,693103.
Dan seterusnya.
Komentar
Berikut adalah beberapa catatan tentang fungsi yang digunakan dalam contoh ini:
- Lebar (yaitu jendela drop-down) harus sama dengan atau lebih besar dari 3 untuk menghitung korelasi.
- Anda dapat menemukan dokumentasi lengkap untuk fungsi Rolling.corr() di sini .
Sumber daya tambahan
Cara menghitung korelasi geser di R
Cara Menghitung Korelasi Bergulir di Excel