Python'da kısmi korelasyon nasıl hesaplanır
İstatistikte, iki değişken arasındaki doğrusal ilişkiyi ölçmek için sıklıkla Pearson korelasyon katsayısını kullanırız . Ancak bazen üçüncü bir değişkeni kontrol ederken iki değişken arasındaki ilişkiyi anlamak isteriz.
Örneğin, öğrencinin sınıftaki mevcut notunu kontrol ederken, öğrencinin ders çalışma saati ile final sınav notu arasındaki ilişkiyi ölçmek istediğimizi varsayalım. Bu durumda çalışılan saat ile final sınav notu arasındaki ilişkiyi ölçmek için kısmi korelasyonu kullanabiliriz.
Bu eğitimde Python’da kısmi korelasyonun nasıl hesaplanacağı açıklanmaktadır.
Örnek: Python’da kısmi korelasyon
Diyelim ki 10 öğrencinin geçerli notunu, çalışılan toplam saati ve final sınav notunu görüntüleyen aşağıdaki Pandas DataFrame’e sahibiz:
import numpy as np import panda as pd data = {'currentGrade': [82, 88, 75, 74, 93, 97, 83, 90, 90, 80], 'hours': [4, 3, 6, 5, 4, 5, 8, 7, 4, 6], 'examScore': [88, 85, 76, 70, 92, 94, 89, 85, 90, 93], } df = pd.DataFrame(data, columns = ['currentGrade','hours', 'examScore']) df currentGrade hours examScore 0 82 4 88 1 88 3 85 2 75 6 76 3 74 5 70 4 93 4 92 5 97 5 94 6 83 8 89 7 90 7 85 8 90 4 90 9 80 6 93
currentGrade’i kontrol ederken saat ve ExamScore arasındaki kısmi korelasyonu hesaplamak için penguin paketindeki aşağıdaki sözdizimini kullanan kısmi_corr() işlevini kullanabiliriz:
kısmi_düzeltme(veri, x, y, ortak)
Altın:
- veri: veri çerçevesinin adı
- x, y: veri çerçevesindeki sütun adları
- covar: veri çerçevesindeki ortak değişken sütununun adı (örneğin, kontrol ettiğiniz değişken)
Bu özel örnekte bu fonksiyonun nasıl kullanılacağı aşağıda açıklanmıştır:
#install and import penguin package pip install penguin import penguin as pg #find partial correlation between hours and exam score while controlling for grade pg.partial_corr(data=df, x='hours', y='examScore', covar='currentGrade') n r CI95% r2 adj_r2 p-val BF10 power pearson 10 0.191 [-0.5, 0.73] 0.036 -0.238 0.598 0.438 0.082
Çalışılan saat ile final sınav notu arasındaki kısmi korelasyonun 0,191 olduğunu görüyoruz ki bu da küçük bir pozitif korelasyondur. Çalışma saatlerinin sayısı arttıkça, mevcut notun sabit kaldığı varsayılarak sınav puanları da artma eğilimindedir.
Birkaç değişken arasındaki kısmi korelasyonu aynı anda hesaplamak için .pcorr() işlevini kullanabiliriz:
#calculate all pairwise partial correlations, rounded to three decimal places
df.pcorr().round(3)
currentGrade hours examScore
currentGrade 1.000 -0.311 0.736
hours -0.311 1.000 0.191
examScore 0.736 0.191 1.000
Sonucun yorumlanma şekli şu şekildedir:
- Mevcut not ile çalışılan saat arasındaki kısmi korelasyon -0,311’dir .
- Mevcut not ile sınav notu arasındaki kısmi korelasyon 0,736 .
- Çalışılan saat ile sınav puanı arasındaki kısmi korelasyon 0,191 .