En Data science, il est primordial de découvrir et quantifier à quel point deux variables sont liées. Ces relations peuvent être complexes et ne sont pas forcément visibles. Or certaines de ces dépendances affaiblissent les performances d’algorithme de Machine Learning comme des régressions linéaires. Il devient alors impératif de mieux préparer vos données.
Nous allons voir ici comment obtenir la dépendance entre deux variables catégorielles et entre des variables catégorielles et continues.
Tout d’abord, il faut se rappeler qu’une variable catégorielle est une variable qui possède un nombre fini de catégories ou de groupes distincts. Par exemple, le sexe d’individus, le type de matériel ou le mode de paiement. A contrario, les variables continues peuvent prendre en théorie un nombre infini de valeurs.
Corrélation entre deux variables catégorielles :
Pour savoir si deux variables catégorielles sont liées, on utilise le célèbre test du khi-deux. Pour ceux qui ne sont pas familiers des tests statistiques pas de panique !
Un test statistique est une procédure de décision entre deux hypothèses.
Il s’agit d’une démarche consistant à rejeter ou à ne pas rejeter une hypothèse statistique, appelée hypothèse nulle H0, en fonction d’un jeu de données.
Dans le test qui nous intéresse l’hypothèse nulle est simplement « les deux variables testées sont indépendantes ». Enfin le test s’accompagne d’une statistique de test qui participe à la décision de rejeter ou non l’hypothèse nulle. Cette statistique par la manière dont le test est construit, a le bon goût de suivre une loi de khi-deux avec un certain degré de liberté.
Mais comment décider de rejeter ou non l’hypothèse nulle ?
Sans rentrer dans les détails mathématiques chaque test statistique dispose de ce qu’on appelle la p-valeur. On peut la voir comme une valeur référence pour décider du rejet ou non de l’hypothèse nulle.
Si cette dernière est en-dessous de 5% alors on rejette l’hypothèse nulle. Le seuil de 5% est d’usage de praticien il peut varier suivant les secteurs d’activité.
En Python le test est facilement implémentable à l’aide de la bibliothèque scipy et de sa fonction chi2_contingency. Elle permet d’obtenir rapidement la p-valeur du test ainsi que la statistique et le degré de liberté associé. Dans la pratique le test du khi-deux demande, en amont, un petit travail sur les données. Pour pouvoir effectuer le test il faut d’abord déterminer la table de contingence. C’est un tableau de croisement entre les modalités des deux variables. Il s’obtient facilement avec la fonction crosstab de Pandas. Ensuite on réalise le test en utilisant la table de contingence :
Dans notre exemple ci-dessus la p-valeur est bien inférieur à 5% on peut donc rejeter l’hypothèse selon laquelle les deux variables testées sont indépendantes.
Enfin on peut également mesurer le niveau de corrélation entre les deux variables en utilisant le V de Cramer. Il se calcule à l’aide de la statistique de test, du degré de liberté et des dimensions de la table de contingence. Il renvoie une valeur entre 0 et 1. Si la valeur est renvoyée est supérieure à 0.9 on peut qualifier la relation de très forte. Si la valeur est inférieure à 0.10 on peut qualifier la relation de faible.
Corrélation entre deux variables continues :
Comme pour les variables catégorielles il existe un test pour déterminer si deux variables continues sont indépendantes : le test de corrélation de Pearson. L’hypothèse nulle à tester est identique : « les deux variables testées sont indépendantes ». Comme pour le test du chi-deux, celui-ci s’accompagne d’une statistique de test et d’une p-valeur qui détermine du rejet ou non de l’hypothèse nulle.
On peut très facilement implémenter ce test à l’aide de la bibliothèque scipy et de sa fonction pearsonr. Il n’y a pas besoin de faire un travail sur les données en amont à condition qu’elles ne contiennent pas de valeurs manquantes. Voici un exemple d’implémentation avec python :
Dans notre exemple la p-valeur est inférieur à 5%. On en déduit que les variables ne sont pas indépendantes. Le coefficient de Pearson permet de mesurer le niveau de corrélation entre les deux variables. Il renvoie une valeur entre -1 et 1. S’il est proche de 1 cela signifie que les variables sont corrélées, proche de 0 que les variables sont décorrélées et proche de -1 qu’elles sont corrélées négativement. Dans notre exemple, le coefficient a une valeur de 0.80319 ce qui signifie que les variables sont fortement corrélées.
Corrélation entre une variable continue et une variable catégorielle :
Pour étudier ce type de corrélation on a recours à l’analyse de la variance (ANOVA) à un facteur qui permet de comparer les moyennes d’échantillon. L’objectif de ce test est de conclure sur l’influence d’une variable catégorielle sur la loi d’une variable continue à expliquer.
Imaginez que vous disposez de 3 variables. La première renseigne un numéro client, la deuxième une catégorie (1,2 ou 3) et la dernière les sommes dépensées. La question qu’on peut se poser : est-ce que la variable catégorie a une influence sur les sommes dépensées ? Notons µ1, µ2 et µ3 les moyennes des sommes dépensées pour chacune des 3 catégories. Un raisonnement simple consiste à dire que si la variable catégorie n’a pas d’influence sur les sommes dépensées alors les moyennes devraient être identiques.
Autrement dit µ1 = µ2 = µ3. C’est exactement l’hypothèse que nous testons quand on a recours à l’analyse de la variance. Comme pour les tests du chi-deux et Pearson ce test s’accompagne d’une statistique de test et d’une p-valeur qui détermine du rejet ou non de l’hypothèse nulle.
Ce test est facilement implémentable en python en utilisant la librairie statsmodels. Voici un exemple d’implémentation :
Dans notre exemple, df renseigne le degré de liberté de la statistique de test F qui suit une loi de Fisher. PR(>F) renseigne la valeur de la p-valeur du test. Celle-ci est inférieure à 5% nous concluons donc que la variable pledged a une influence sur main_category.
Vous avez maintenant toutes les cartes en main pour étudier les corrélations au sein d’un jeu de données. Datascientest vous offrira la possibilité d’aller plus loin en apprenant à maîtriser la gestion d’un projet data de A à Z. Découvrez nos formations, n’hésitez plus !