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

Tambahkan komentar

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