Cara menghitung korelasi parsial dengan python


Dalam statistik, kita sering menggunakan koefisien korelasi Pearson untuk mengukur hubungan linier antara dua variabel. Namun, terkadang kita ingin memahami hubungan antara dua variabel sambil mengendalikan variabel ketiga .

Misalnya, kita ingin mengukur hubungan antara jumlah jam belajar siswa dan nilai ujian akhir, sambil mengontrol nilai siswa saat ini di kelas. Dalam hal ini, kita dapat menggunakan korelasi parsial untuk mengukur hubungan antara jam belajar dan nilai ujian akhir.

Tutorial ini menjelaskan cara menghitung korelasi parsial dengan Python.

Contoh: korelasi parsial dengan Python

Katakanlah kita memiliki Pandas DataFrame berikut yang menampilkan nilai saat ini, total jam belajar, dan nilai ujian akhir untuk 10 siswa:

 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

Untuk menghitung korelasi parsial antara jam dan ujianScore sambil mengontrol currentGrade , kita dapat menggunakan fungsi parsial_corr() dari paket penguin , yang menggunakan sintaksis berikut:

parsial_corr(data, x, y, covar)

Emas:

  • data: nama bingkai data
  • x, y: nama kolom dalam kerangka data
  • covar: nama kolom kovariat dalam kerangka data (misalnya variabel yang Anda kendalikan)

Berikut cara menggunakan fungsi ini dalam contoh khusus ini:

 #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

Kita dapat melihat bahwa korelasi parsial antara jam belajar dan nilai ujian akhir adalah 0,191 , yang merupakan korelasi positif kecil. Seiring bertambahnya jumlah jam belajar, nilai ujian pun cenderung meningkat, dengan asumsi nilai saat ini tetap konstan.

Untuk menghitung korelasi parsial antara beberapa variabel sekaligus, kita dapat menggunakan fungsi .pcorr() :

 #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

Cara menafsirkan hasilnya adalah sebagai berikut:

  • Korelasi parsial antara nilai saat ini dan jam belajar adalah -0,311 .
  • Korelasi parsial antara nilai saat ini dan nilai ujian 0,736 .
  • Korelasi parsial antara jam belajar dan nilai ujian 0,191 .

Tambahkan komentar

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