Le code source de ce cours est disponible sur https://github.com/asardell/statistique-python

Test d'indépendance 🎲 avec Python

Les tests d'indépendances permettent de définir s'il existe un lien entre deux variables. Il existe différent test d'indépence, en voici quelques exemples :


Dans une démarche d'un projet de machine learning, les test d'indépendance permettent d'exclure des variables explicatives potentiellement non porteuses d'information.

Librairies utilisées

Test de corrélation Pearson

L’intérêt des tests de corrélation est d’apporter plus de pertinence et fiabilité aux coefficients de corrélation. Il existe différents test de corrélation, nous utilisons celui de Pearson.

On travaille avec le jeu de données fromage 🧀 disponible en cliquant ici

Avant de réaliser des tests d'indépendance, on projette graphiquement les données 2 à 2

Matrice des corrélations

Voici la matrice des corrélations des variables du fichier fromage.

L'intérêt des tests de corrélation est d'apporter plus de pertinence et fiabilité aux coefficients de corrélation. Il existe différents test de corrélation, nous utilisons celui de Pearson.

On pose les hypothèses de départ :

Lipides vs Magnesium

La première sortie correspond au coefficient de corrélation, la seconde à la p-value (ou probabilité critique)

~H0 : Variables indépendantes si p-value > 5%~
H1 : Variables non indépendantes si p-value < 5%

Sodium vs Retinol

H0 : Variables indépendantes si p-value > 5%
~H1 : Variables non indépendantes si p-value < 5%~
Si on veut rejeter H0 et prendre H1, j'ai 45,5% de chance de me tromper

📢 Les tests statistiques sont trés sensibles à la taille de l'échantillon. Un coefficient de corrélation de 0.14 n'aura pas la même significativité sur un échantillon de 29 fromages qu'un échantillon de 319 fromages avec le même coefficient de corrélation.

On construit un daatframe en duppliquant le nombre de lignes

Chaque fromage apparaît plusieurs fois, on a augmenté la taille de l'échantillon

On effectue un autre test de corrélation avec les mêmes variables sur l'échantillon plus grand.

~H0 : Variables indépendantes si p-value > 5%~
H1 : Variables non indépendantes si p-value < 5%

On obtient logiquement le même coefficient de corrélation, mais en revanche, cette fois si la p-value est proche de 0.

Matrice des p-values

On effectue un test de corrélation sur chaque variable 2 à 2 en isolant uniquement la p-value

On affiche la matrice des corrélations avec un gradiant de couleur

💡 Obtient-on les mêmes p-value si on centre et on réduit ?

On centre et on réduit

On calcule les test de corrélation

On affiche la matrice des p-value

💡 On obtient bien les mêmes p-value si on centre et on réduit

⛔ Cas de relation non linéaire

Les différents coefficients de corrélation sont beaucoup plus adaptés aux relation linéaire. C’est pourquoi il est important de toujours visualiser les distributions.

Plus d'infos ici

Cas d'une relation linéaire et monotone

Cas d'une relation non-linéaire et non-monotone

La parabole

Le cercle

Test du Khi²

L'intérêt du test du Khi² est de mesurer l'indépendance entre deux variables qualitatives à partir du tableau de contigence.

On travaille sur le jeu de données Titanic 🧊⛴ disponible en cliquant ici

On pose les hypothèses de départ :

Survived vs PClass

H0 : Variables indépendantes si p-value > 5%
~H1 : Variables non indépendantes si p-value < 5%~

Exemple sur données fictives

H0 : Variables indépendantes si p-value > 5%
~H1 : Variables non indépendantes si p-value < 5%~
Si on veut rejeter H0 et prendre H1, j'ai 10,9% de chance de me tromper

Le 10,9% correspond à la probabilité de rejeter à tord H0. Comment la calculer ?

Lecture dans la table du Chi2

On cherche quelle est la probabilité critique pour laquelle Khi2_obs < Khi2_max de la table sur la ligne correspond à notre nombre de degré de liberté ddl

📢 Taille de l'échantillon

Les tests d'indépendance sont trés sensibles à la taille des échantillons. Ici on divise par 100 pour avoir des effectifs faibles mais en conservant les répartitions.

H0 : Variables indépendantes si p-value > 5%
~H1 : Variables non indépendantes si p-value < 5%~

Ici on multiplie par 100 pour avoir des effectifs grands mais en conservant les répartitions.

~H0 : Variables indépendantes si p-value > 5%~
H1 : Variables non indépendantes si p-value < 5%

ANOVA

Anova à 1 facteur

On effectue une analyse de variance pour mesurer l’indépendance entre une variable qualitative et une quantitative.

Exemple sur le dataset Hotdogs 🌭 disponible en cliquant ici.

On va tester l’indépendance entre la variable qualitative Type et la variable quantitatives Calories.

Dans une ANOVA, on cherche à déterminer si les moyennes des groupes sont significativement différentes. On pose donc :

~H0 : Les moyennes de chaque groupe sont égales si p-value > 5%~
H1 : Les moyennes de chaque groupe ne sont pas toutes égales < 5%

Quand on dispose d’un petit échantillon, la pertinence de ce test repose sur la validation de plusieurs hypothèses :

L'indépendance

L’indépendance est une des 3 conditions de validité d’une ANOVA. Seul le contexte de l’étude permet de s’assurer de l’indépendance entre les échantillons de chaque groupe (ici beef, poultry, chicken.)

L’égalité des variances

On parle aussi d’homoscédasticité. C’est une des 3 conditions de validité d’une ANOVA. On cherche à démontrer que les variances de chaque groupe sont égales. Dans un boxplot, l’amplitude des boîtes traduit graphiquement l’égalité des variances.

Mais c’est le test de bartlett qui permet de tester si les variances sont significativement différentes ou non avec :

Les variances de chaque groupe sont égales. La deuxième condition pour effectuer une anova est validée.

Normalité des résidus

C’est une des 3 conditions de validité d’une ANOVA. L’objectif est de s’assurer que les résidus suivent une loi normale afin de ne pas affirmer qu’il existe une différence de moyenne entre les groupes qui serait causée par le hasard.

On utilise le test de Shapiro-Wilk pour tester la normalité des résidus où :

Néanmoins, les conclusions dépendent également tu risques qu'on souhaite. Si on veut 1% de chance de se tromper, alors on ne rejette pas H0 car la p-value > 1%

Cas de variances égales entre chaque groupe

On s'interesse au variance de chaque groupe

Le test de bartlett permet de tester si les variances sont significativement différentes ou non

H0 : Les variances de chaque groupe sont égales si p-value > 5%
~H1 : Les variances de chaque groupe ne sont pas toutes égales < 5%~
On peut donc faire une ANOVA

A travers l'analyse de la variance on cherche à déterminer si :
H0 : Les moyennes de chaque groupe sont égales si p-value > 5%
H1 : Les moyennes de chaque groupe ne sont pas toutes égales < 5%

~H0 : Les moyennes de chaque groupe sont égales si p-value > 5%~
H1 : Les moyennes de chaque groupe ne sont pas toutes égales < 5%

Cas de variances inégales entre chaque groupe

~H0 : Les variances de chaque groupe sont égales si p-value > 5%~
H1 : Les variances de chaque groupe ne sont pas toutes égales < 5%
Il n'est donc pas conseillé de réaliser une ANOVA car les résultats ne seraient pas fiables.

Anova à 2 facteurs

Même principe que l'Anova à un facteur sauf qu'on ajoute un autre facteur. L'idée est de tester l'indépendance de ces facteurs sur une variable quantitative continue

On utilise le dataset ToothGrowth disponible en cliquant ici. On étudie la longueur des odontoblastes (cellules responsables de la croissance dentaire) chez 60 cobayes. Chaque animal a reçu l'une des trois doses de vitamine C (0,5, 1 et 2 mg / jour) par l'une des deux méthodes d'administration, du jus d'orange ou de l'acide ascorbique (une forme de vitamine C et codée VC) :

On étudie la variable supp

H0 : Les variances de chaque groupe sont égales si p-value > 5%
~H1 : Les variances de chaque groupe ne sont pas toutes égales < 5%~

On étudie la variable dose

H0 : Les variances de chaque groupe sont égales si p-value > 5%
~H1 : Les variances de chaque groupe ne sont pas toutes égales < 5%~

On peut faire une ANOVA

H0 : Les moyennes de chaque groupe sont égales si p-value > 5%
H1 : Les moyennes de chaque groupe ne sont pas toutes égales < 5%

📢 Le principe de l'Anova à plusieurs facteurs c'est justement de pouvoir observer les intéractions entre les variables

📢 On voit donc qu'il existe une intéraction entre les deux variables. Pour mesurer quelles associations sont significativement différentes des autres, on peut utilise un test de Tukey qui consiste à faire des tests de comparaison de moyenne sur deux échantillon avec toutes les combinaisons d'association

Pour cela, on crée une colonne avec les combinaisons des deux facteurs.