Cara menghitung korelasi silang dengan python
Korelasi silang adalah cara untuk mengukur tingkat kemiripan antara suatu deret waktu dan versi tertinggal dari deret waktu lainnya.
Jenis korelasi ini berguna untuk dihitung karena dapat memberi tahu kita apakah nilai dalam satu deret waktu merupakan prediksi nilai masa depan dalam deret waktu lainnya. Dengan kata lain, ini dapat memberi tahu kita apakah suatu deret waktu merupakan indikator utama untuk deret waktu lainnya.
Jenis korelasi ini digunakan di berbagai bidang, termasuk:
Bisnis: Pengeluaran pemasaran sering kali dianggap sebagai indikator utama pendapatan bisnis di masa depan. Misalnya, jika sebuah perusahaan menghabiskan jumlah uang yang sangat besar untuk pemasaran dalam satu kuartal, maka total pendapatannya akan tinggi x kuartal berikutnya.
Ekonomi: Indeks Kepercayaan Konsumen (IKK) dianggap sebagai indikator utama produk domestik bruto (PDB) suatu negara. Misalnya, jika CCI tinggi pada bulan tertentu, PDB kemungkinan akan lebih tinggi dalam beberapa bulan kemudian.
Contoh berikut menunjukkan cara menghitung korelasi silang antara dua deret waktu dengan Python.
Contoh: Cara Menghitung Korelasi Silang dengan Python
Katakanlah kita memiliki rangkaian waktu berikut dengan Python yang menunjukkan total pengeluaran pemasaran (dalam ribuan) untuk perusahaan tertentu serta total pendapatan (dalam ribuan) selama 12 bulan berturut-turut:
import numpy as np #define data marketing = n.p. array ([3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8]) income = np. array ([21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30])
Kita dapat menghitung korelasi silang untuk setiap lag antara dua deret waktu menggunakan fungsi ccf() dari paket statsmodels sebagai berikut:
import statsmodels. api as sm
#calculate cross correlation
sm. tsa . stattools . ccf (marketing, revenue, adjusted= False )
array([ 0.77109358, 0.46238654, 0.19352232, -0.06066296, -0.28159595,
-0.44531104, -0.49159463, -0.35783655, -0.15697476, -0.03430078,
0.01587722, 0.0070399 ])
Berikut cara menafsirkan keluaran ini:
- Korelasi silang pada lag 0 adalah 0,771 .
- Korelasi silang pada lag 1 adalah 0,462 .
- Korelasi silang pada lag 2 adalah 0,194 .
- Korelasi silang pada lag 3 adalah -0.061 .
Dan seterusnya.
Perhatikan bahwa korelasi antara dua deret waktu menjadi semakin tidak positif seiring dengan meningkatnya jumlah kelambatan. Hal ini menunjukkan bahwa pembelanjaan pemasaran pada bulan tertentu cukup dapat memprediksi pendapatan satu atau dua bulan kemudian, namun tidak dapat memprediksi pendapatan setelah dua bulan.
Hal ini masuk akal: kita memperkirakan pengeluaran pemasaran yang tinggi pada bulan tertentu dapat memprediksi peningkatan pendapatan selama dua bulan ke depan, namun belum tentu merupakan peningkatan pendapatan beberapa bulan dari sekarang.
Sumber daya tambahan
Cara Menghitung Autokorelasi dengan Python
Cara menghitung korelasi parsial dengan Python
Cara menghitung korelasi titik-biserial dengan Python