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

Tambahkan komentar

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