Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment calculer une corrélation partielle en Python



En statistique, on utilise souvent le coefficient de corrélation de Pearson pour mesurer la relation linéaire entre deux variables. Cependant, nous souhaitons parfois comprendre la relation entre deux variables tout en contrôlant une troisième variable .

Par exemple, supposons que nous souhaitions mesurer l’association entre le nombre d’heures d’études d’un étudiant et la note obtenue à l’examen final, tout en contrôlant la note actuelle de l’étudiant dans la classe. Dans ce cas, nous pourrions utiliser une corrélation partielle pour mesurer la relation entre les heures étudiées et la note à l’examen final.

Ce tutoriel explique comment calculer une corrélation partielle en Python.

Exemple : corrélation partielle en Python

Supposons que nous ayons le Pandas DataFrame suivant qui affiche la note actuelle, le nombre total d’heures étudiées et la note de l’examen final pour 10 étudiants :

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

Pour calculer la corrélation partielle entre les heures et examScore tout en contrôlant currentGrade , nous pouvons utiliser la fonction partial_corr() du package pingouin , qui utilise la syntaxe suivante :

partial_corr (données, x, y, covar)

où:

  • data : nom de la trame de données
  • x, y : noms des colonnes dans le dataframe
  • covar : le nom de la colonne de covariable dans le dataframe (par exemple la variable que vous contrôlez)

Voici comment utiliser cette fonction dans cet exemple particulier :

#install and import pingouin package 
pip install pingouin
import pingouin 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

Nous pouvons voir que la corrélation partielle entre les heures étudiées et la note à l’examen final est de 0,191 , ce qui est une petite corrélation positive. À mesure que le nombre d’heures d’étude augmente, les résultats à l’examen ont également tendance à augmenter, en supposant que la note actuelle reste constante.

Pour calculer la corrélation partielle entre plusieurs variables à la fois, nous pouvons utiliser la fonction .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

La façon d’interpréter le résultat est la suivante :

  • La corrélation partielle entre la note actuelle et les heures étudiées est de -0,311 .
  • La corrélation partielle entre la note actuelle et la note à l’examen 0,736 .
  • La corrélation partielle entre les heures étudiées et la note à l’examen 0,191 .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *