So berechnen sie die partielle korrelation in python


In der Statistik verwenden wir häufig den Pearson-Korrelationskoeffizienten , um die lineare Beziehung zwischen zwei Variablen zu messen. Manchmal möchten wir jedoch die Beziehung zwischen zwei Variablen verstehen und gleichzeitig eine dritte Variable steuern .

Angenommen, wir möchten den Zusammenhang zwischen der Anzahl der Lernstunden eines Schülers und der Abschlussprüfungsnote messen und gleichzeitig die aktuelle Note des Schülers in der Klasse kontrollieren. In diesem Fall könnten wir die partielle Korrelation verwenden, um die Beziehung zwischen den gelernten Stunden und der Abschlussprüfungsnote zu messen.

In diesem Tutorial wird erklärt, wie man eine partielle Korrelation in Python berechnet.

Beispiel: Teilkorrelation in Python

Nehmen wir an, wir haben den folgenden Pandas DataFrame, der die aktuelle Note, die Gesamtstundenzahl und die Abschlussprüfungsnote für 10 Schüler anzeigt:

 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

Um die teilweise Korrelation zwischen Stunden und examScore zu berechnen und gleichzeitig currentGrade zu steuern, können wir die Funktion „partial_corr()“ aus dem Penguin-Paket verwenden, die die folgende Syntax verwendet:

partielle_corr(Daten, x, y, covar)

Gold:

  • Daten: Name des Datenrahmens
  • x, y: Spaltennamen im Datenrahmen
  • covar: der Name der Kovariatenspalte im Datenrahmen (z. B. die Variable, die Sie steuern)

So verwenden Sie diese Funktion in diesem speziellen Beispiel:

 #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

Wir können sehen, dass die teilweise Korrelation zwischen den gelernten Stunden und der Abschlussprüfungsnote 0,191 beträgt, was einer kleinen positiven Korrelation entspricht. Mit zunehmender Studienstundenzahl steigen tendenziell auch die Prüfungsergebnisse, sofern die aktuelle Note konstant bleibt.

Um die Teilkorrelation zwischen mehreren Variablen gleichzeitig zu berechnen, können wir die Funktion .pcorr() verwenden:

 #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

Das Ergebnis lässt sich wie folgt interpretieren:

  • Die teilweise Korrelation zwischen der aktuellen Note und den gelernten Stunden beträgt -0,311 .
  • Die teilweise Korrelation zwischen aktueller Note und Prüfungsnote beträgt 0,736 .
  • Die teilweise Korrelation zwischen den gelernten Stunden und dem Prüfungsergebnis beträgt 0,191 .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert