1.1. Introduction

La première méthode que presque tout le monde connaît est l’histogramme. L’histogramme est une visualisation de données qui montre la distribution d’une variable. Il nous donne la fréquence d’occurrence par valeur dans l’ensemble de données, ce qui est le but des distributions.

L’histogramme est un excellent moyen de visualiser rapidement la distribution d’une seule variable.

1.2. Interprétation

Dans l’image ci-dessous, deux histogrammes montrent une distribution normale et une distribution non normale.

  • À gauche, il y a très peu de déviation de la distribution de l’échantillon (en gris) par rapport à la distribution théorique en cloche (ligne rouge).
  • À droite, nous voyons une forme tout à fait différente dans l’histogramme, nous indiquant directement qu’il ne s’agit pas d’une distribution normale.

Parfois, l’écart par rapport à une distribution normale est si évident qu’il peut être détecté visuellement.

1.3. Mise en œuvre

Un histogramme peut être créé facilement en python comme suit:

Création d’un histogramme en utilisant pandas en python

1.4. Conclusion

L’histogramme est un excellent moyen de visualiser rapidement la distribution d’une seule variable.

2.1. Introduction

Le Box Plot est une autre technique de visualisation qui peut être utilisée pour détecter les échantillons non normaux. Le Box Plot trace le résumé en 5 nombres d’une variable : minimum, premier quartile, médiane, troisième quartile et maximum.

Le boxplot est un excellent moyen de visualiser les distributions de plusieurs variables en même temps.

2.2 Interprétation

Le boxplot est une excellente technique de visualisation car il permet de tracer de nombreux boxplots les uns à côté des autres. Avoir cette vue d’ensemble très rapide des variables nous donne une idée de la distribution et en « bonus », nous obtenons le résumé complet en 5 chiffres qui nous aidera dans les analyses ultérieures.

Vous devez regarder deux choses :

  • La distribution est-elle symétrique (comme l’est la distribution normale) ?
  • La largeur (opposée à la ponctualité) correspond-elle à la largeur de la distribution normale ? C’est difficile à voir sur un box plot.

Boxplots normaux (gauche), uniformes (milieu) et exponentiels (droite) par rapport à la courbe en cloche normale

2.3. Mise en œuvre

Un boxplot peut être facilement mis en œuvre en python comme suit :

Création d’un boxplot en utilisant pandas en python

2.4. Conclusion

Le boxplot est un excellent moyen de visualiser les distributions de plusieurs variables en même temps, mais un écart de largeur/pointage est difficile à identifier en utilisant les box plots.

3.1. Introduction

Avec les QQ plots, nous commençons à entrer dans les choses plus sérieuses, car cela demande un peu plus de compréhension que les méthodes décrites précédemment.

Le QQ Plot est l’abréviation de Quantile vs Quantile Plot, ce qui est exactement ce qu’il fait : tracer les quantiles théoriques contre les quantiles réels de notre variable.

Le QQ Plot nous permet de voir la déviation d’une distribution normale beaucoup mieux que dans un Histogramme ou un Box Plot.

3.2. Interprétation

Si notre variable suit une distribution normale, les quantiles de notre variable doivent être parfaitement alignés avec les quantiles normaux « théoriques » : une ligne droite sur le QQ Plot nous indique que nous avons une distribution normale.

Plots QQ normaux (gauche), uniformes (milieu) et exponentiels (droite)

Comme on le voit sur l’image, les points d’un Plot QQ normal suivent une ligne droite, alors que les autres distributions dévient fortement.

  • La distribution uniforme a trop d’observations aux deux extrémités (valeurs très élevées et très basses).
  • La distribution exponentielle a trop d’observations sur les valeurs inférieures, mais trop peu dans les valeurs supérieures.

En pratique, nous voyons souvent quelque chose de moins prononcé mais de forme similaire. Une sur ou sous-représentation dans la queue devrait provoquer des doutes sur la normalité, auquel cas vous devriez utiliser l’un des tests d’hypothèse décrits ci-dessous.

3.3. Mise en œuvre

La mise en œuvre d’un tracé QQ peut être effectuée en utilisant l’api statsmodels en python comme suit :

Création d’un tracé QQ en utilisant statsmodels

3.4. Conclusion

Le QQ Plot nous permet de voir la déviation d’une distribution normale beaucoup mieux que dans un Histogramme ou un box plot.

Test de Kolmogorov Smirnov

Si le QQ Plot et les autres techniques de visualisation ne sont pas concluants, l’inférence statistique (Test d’hypothèse) peut donner une réponse plus objective pour savoir si notre variable dévie significativement d’une distribution normale.

Si vous avez des doutes sur comment et quand utiliser les tests d’hypothèses, voici un article qui donne une explication intuitive aux tests d’hypothèses.

Le test de Kolmogorov Smirnov calcule les distances entre la distribution empirique et la distribution théorique et définit la statistique de test comme le supremum de l’ensemble de ces distances.

L’avantage est que la même approche peut être utilisée pour comparer n’importe quelle distribution, pas nécessairement la distribution normale uniquement.

Le test KS est bien connu mais il n’a pas beaucoup de puissance. Il peut être utilisé pour d’autres distributions que la normale.

4.2. Interprétation

La statistique de test du test KS est la statistique de Kolmogorov Smirnov, qui suit une distribution de Kolmogorov si l’hypothèse nulle est vraie.

Si les données observées suivent parfaitement une distribution normale, la valeur de la statistique KS sera 0. La valeur P est utilisée pour décider si la différence est suffisamment importante pour rejeter l’hypothèse nulle :

  • Si la valeur P du test de KS est supérieure à 0,05, on suppose une distribution normale
  • Si la valeur P du test de KS est inférieure à 0,05, on ne suppose pas une distribution normale

4.3. Mise en œuvre

Le test de KS en Python à l’aide de Scipy peut être mis en œuvre comme suit. Il renvoie la statistique de KS et sa valeur P.

Application du test de KS en Python en utilisant Scipy

4.4. Conclusion

Le test de KS est bien connu mais il n’a pas beaucoup de puissance. Cela signifie qu’un grand nombre d’observations est nécessaire pour rejeter l’hypothèse nulle. Il est également sensible aux valeurs aberrantes. En revanche, il peut être utilisé pour d’autres types de distributions.

Test de Lilliefors

Le test de Lilliefors est fortement basé sur le test de KS. La différence est que dans le test de Lilliefors, il est accepté que la moyenne et la variance de la distribution de la population soient estimées plutôt que pré-spécifiées par l’utilisateur.

Pour cette raison, le test de Lilliefors utilise la distribution de Lilliefors plutôt que la distribution de Kolmogorov.

Malheureusement pour Lilliefors, sa puissance est toujours inférieure à celle du test de Shapiro Wilk.

5.2. Interprétation

  • Si la valeur P du test de Lilliefors est supérieure à 0,05, on suppose une distribution normale
  • Si la valeur P du test de Lilliefors est inférieure à 0,05, on ne suppose pas une distribution normale

5.3. Implémentation

L’implémentation du test de Lilliefors dans statsmodels retournera la valeur de la statistique du test de Lilliefors et la valeur P comme suit.

Attention : dans l’implémentation de statsmodels, les valeurs P inférieures à 0.001 sont rapportées comme 0,001 et les valeurs P supérieures à 0,2 sont rapportées comme 0,2.

Application du test de Lilliefors à l’aide de statsmodels

5.4. Conclusion

Bien que le test de Lilliefors soit une amélioration du test KS, sa puissance reste inférieure à celle du test de Shapiro Wilk.

Test de Shapiro Wilk

Le test de Shapiro Wilk est le test le plus puissant lorsqu’on teste une distribution normale. Il a été développé spécifiquement pour la distribution normale et il ne peut pas être utilisé pour tester contre d’autres distributions comme par exemple le test KS.

Le test de Shapiro Wilk est le test le plus puissant lors du test d’une distribution normale.

6.2. Interprétation

  • Si la valeur P du test de Shapiro Wilk est supérieure à 0,05, on suppose une distribution normale
  • Si la valeur P du test de Shapiro Wilk est inférieure à 0,05, on ne suppose pas une distribution normale

6.3. Mise en œuvre

Le test de Shapiro Wilk peut être mis en œuvre comme suit. Il renverra la statistique de test appelée W et la valeur P.

Attention : pour N > 5000 la statistique de test W est exacte mais la valeur P peut ne pas l’être.

Application du test de Shapiro Wilk à l’aide de statsmodels en Python

6.4. Conclusion

Le test de Shapiro Wilk est le test le plus puissant lorsqu’on teste une distribution normale. Vous devriez définitivement utiliser ce test.

Conclusion – quelle approche utiliser !

Pour une identification rapide et visuelle d’une distribution normale, utilisez un QQ plot si vous n’avez qu’une seule variable à regarder et un Box Plot si vous en avez plusieurs. Utilisez un histogramme si vous devez présenter vos résultats à un public non statisticien.

Comme test statistique pour confirmer votre hypothèse, utilisez le test de Shapiro Wilk. C’est le test le plus puissant, qui devrait être l’argument décisif.

Lorsque vous effectuez des tests par rapport à d’autres distributions, vous ne pouvez pas utiliser le test de Shapiro Wilk et devez utiliser par exemple le test d’Anderson-Darling ou le test KS.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.