Données normales

Conception d'expériences en Python

James Chapman

Curriculum Manager, DataCamp

La loi normale

 

  • La forme familière en « cloche »
  • Lié au travail avec le z-score

$$ {z} = \frac{x-\mu}{\sigma}$$

  • Moyenne = 0, écart-type = 1
    • « À combien d'écarts-types ce point est-il de la moyenne ? »
    • « Quelle est la probabilité d'obtenir ce score ? »

 

Un tracé typique en cloche : une courbe bleue sur fond blanc.

Conception d'expériences en Python

Données normales et tests statistiques

 

  • Requise pour les tests paramétriques
  • Tests non paramétriques : ne supposent pas des données normales

 

Un tracé typique en cloche : une courbe bleue sur fond blanc.

Conception d'expériences en Python

Normal, Z et alpha

 

  • Lien crucial avec le seuil de signification ($\alpha$)
  • Comparer la valeur p à $\alpha$
  • Probabilité d'erreur de type I

 

Une loi normale avec deux petites zones noires dans chaque queue

Conception d'expériences en Python

Visualiser des données normales

 

sns.displot(data=salaries,
            x='salary',
            kind="kde")
plt.show()

 

Une distribution en cloche plus haute et plus étroite que la normale, mais gardant la forme typique

Conception d'expériences en Python

QQ plots

QQ plot : comparer des données à une distribution donnée

from statsmodels.graphics.gofplots import qqplot
from scipy.stats.distributions import norm
qqplot(salaries['salary'], 
       line='s', 
       dist=norm)
plt.show()
  • Idéal : points proches de la ligne
  • Problème : courbure aux extrémités

 

Un QQ plot où presque tous les points longent de près la ligne médiane à 45 degrés

Un QQ plot où les points au centre longent la ligne à 45 degrés, mais aux deux extrémités ils s'incurvent vers l'intérieur

Conception d'expériences en Python

Tests de normalité

 

  • Shapiro-Wilk (bon pour petits ensembles)
  • D'Agostino $K^2$ (utilise kurtosis et skewness)
  • Anderson-Darling (retourne une liste de valeurs)

 

$H_0$ = « Données tirées d'une loi normale »

Conception d'expériences en Python

Un test de Shapiro-Wilk

 

from scipy.stats import shapiro
alpha = 0.05

stat, p = shapiro(salaries['salary']) print(f"p: {round(p,4)} test stat: {round(stat,4)}")
p: 0.8293 test stat: 0.9956
  • p > alpha
    • Ne pas rejeter $H_0$ → probablement normal
Conception d'expériences en Python

Un test d'Anderson-Darling

from scipy.stats import anderson
result = anderson(x=salaries['salary'], dist="norm")
print(round(result.statistic,4))
print(result.significance_level)
print(result.critical_values)
0.2748
[15.  10.   5.   2.5  1. ]
[0.572 0.651 0.781 0.911 1.084]
  • 0.2748 < [0.572 0.651 0.781 0.911 1.084]
    • Ne pas rejeter $H_0$ → probablement normal
Conception d'expériences en Python

Passons à la pratique !

Conception d'expériences en Python

Preparing Video For Download...