Cara menghitung korelasi berdasarkan kelompok di pandas
Anda dapat menggunakan sintaks dasar berikut untuk menghitung korelasi antara dua variabel berdasarkan kelompok di panda:
df. groupby (' group_var ')[[' values1 ',' values2 ']]. corr (). unstack (). iloc [:, 1 ]
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: menghitung korelasi berdasarkan kelompok di Pandas
Misalkan kita memiliki panda DataFrame berikut:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
' points ': [18, 22, 19, 14, 14, 11, 20, 28],
' assists ': [2, 7, 9, 3, 12, 10, 14, 21]})
#view DataFrame
print (df)
Kita dapat menggunakan kode berikut untuk menghitung korelasi antara poin dan assist , yang dikelompokkan berdasarkan tim :
#calculate correlation between points and assists, grouped by team
df. groupby (' team ')[[' points ',' assists ']]. corr (). unstack (). iloc [:, 1 ]
team
At 0.603053
B 0.981798
Name: (points, assists), dtype: float64
Dari hasilnya kita dapat melihat:
- Koefisien korelasi antara poin dan assist untuk Tim A sebesar 0,603053 .
- Koefisien korelasi antara poin dan assist Tim B adalah 0,981798 .
Karena kedua koefisien korelasinya positif, hal ini menunjukkan bahwa hubungan antara poin dan assist untuk kedua tim adalah positif.
Artinya, pemain yang cenderung mencetak poin lebih banyak juga cenderung mencatatkan lebih banyak assist.
Terkait: Apa yang dianggap sebagai korelasi “kuat”?
Perhatikan bahwa kita dapat mempersingkat sintaks dengan tidak menggunakan fungsi unstack dan iloc , tetapi hasilnya lebih buruk:
df. groupby (' team ')[[' points ',' assists ']]. corr ()
assist points
team
A points 1.000000 0.603053
assists 0.603053 1.000000
B points 1.000000 0.981798
assists 0.981798 1.000000
Sintaks ini menghasilkan matriks korelasi untuk kedua tim, yang memberi kita informasi berlebih.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:
Cara melakukan penjumlahan GroupBy di Pandas
Cara menggunakan Groupby dan Plot di Pandas
Cara menghitung nilai unik menggunakan GroupBy di Pandas