• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 30/03/2020

Découvrez les tests d'adéquation : le Khi-deux et Kolmogorov Smirnov

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

L'objectif

Dans les travaux de modélisation que le data analyst sera amené à traiter, il y a aura régulièrement des hypothèses sur des lois de probabilité qu'il lui faudra vérifier.

Il existe de nombreux tests pour vérifier qu'un échantillon suit ou non une loi de probabilité donnée, on en donne ici deux représentants, un dans le cas discret, le test dit du Khi-deux, et un dans le cas continu, le test de Kolmogorov Smirnov.

Si on reprend nos deux exemples introductifs, la loi de probabilité était acquise dans le premier cas (loi de Bernoulli) tandis que dans le second cas on a supposé que l'échantillon était potentiellement gaussien. Cette dernière hypothèse peut tout à fait être testée ; si Kolmogorov-Smirnov est utilisable (et présenté ici car plutôt intuitif), il nous faut reconnaître que l'on utilise souvent d'autres tests comme celui de Shapiro-Wilk (non présenté ici).

Le test du Khi-deux

L'idée

On considère un échantillon dont la loi de probabilité est discrète, avec un nombre de valeurs potentielles finies (si la loi n'est pas de support borné, il suffit de regrouper les valeurs en queue, de probabilité plus faible).
Prenons un exemple simple, le lancer d'un dé à 6 faces. Pour savoir s'il est équilibré, il nous faudrait idéalement vérifier que la probabilité d'obtenir la face 1 vaut 16, ... , la probabilité d'obtenir la face 6 vaut 16. Le test du Khi-deux nous simplifie la tâche car il permet de regrouper ces six tests élémentaires. Pour cela on considère une (pseudo-)distance entre les probabilités estimées (que sont les fréquences empiriques) et les valeurs testées : plus cette quantité sera grande, plus on sera enclin à rejeter l'hypothèse que le dé est équilibré.

Le test

On suppose qu'on dispose de n variables aléatoires Xi discrètes, à valeurs dans {a1,,ak}, indépendantes et de même loi caractérisée par p=(p1,,pk)pi=P(X=ai).
On souhaite tester :

{H0=p0H1p0

p0=(p10,,pk0) est connue.
On utilise à cet effet le test du Khi-deux avec comme statistique :

ξn=ni=1k(p^ipi0)2pi0

.

p^i est égal à la fréquence empirique de la valeur ai.

La loi asymptotique de ξn sous H0 est connue, il s'agit d'une loi du Khi-deux à k1 degrés de liberté. On prend donc comme décision, pour un niveau de test α :

  • le rejet de H0 si ξn>χk1,1α2 ,

  • le non-rejet de H0 si ξnχk1,1α2 .

Le coin R : exemple des dés de Weldon

Weldon a réalisé   n=26306 lancers de 12 dés à 6 faces et a comptabilisé, à chaque lancer, le nombre de dés indiquant soit 5 soit 6. Il a obtenu les résultats suivants :

Nb de 5 ou 6

0

1

2

3

4

5

6

7

8

9

10

11

12

Effectif

185

1149

3265

5475

6114

5194

3067

1331

403

105

14

4

0

Soit Xi la v.a.r. à valeurs dans  {0,,12} désignant le nombre de faces comportant un cinq ou un six lors du i -ème lancer.

Dans le cas où les dés sont équilibrés : XiB(13) .

On teste si les dés sont équilibrés :

n <- c(185,1149,3265,5475,6114,5194,3067,1331,403,105,14,4,0)
p0 <- dbinom(0:12,12,1/3)
chisq.test(n,p=p0)

## Warning in chisq.test(n, p = p0): Chi-squared approximation may be
## incorrect

## 
## Results of Hypothesis Test
## --------------------------
## 
## Alternative Hypothesis: 
## 
## Test Name: Chi-squared test for given probabilities
## 
## Data: n
## 
## Test Statistic: X-squared = 41.31222
## 
## Test Statistic Parameter: df = 12
## 
## P-value: 4.344864e-05

Le test n’est pas valide car les effectifs ne sont pas suffisants pour les valeurs 10, 11 et 12. On agrège ces modalités et on relance les calculs :

n <- c(185,1149,3265,5475,6114,5194,3067,1331,403,105,18)
p0 <- c(dbinom(0:9,12,1/3),sum(dbinom(10:12,12,1/3)))
chisq.test(n,p=p0)

## 
## Results of Hypothesis Test
## --------------------------
## 
## Alternative Hypothesis: 
## 
## Test Name: Chi-squared test for given probabilities
## 
## Data: n
## 
## Test Statistic: X-squared = 35.4943
## 
## Test Statistic Parameter: df = 10
## 
## P-value: 0.0001027878

On rejette très largement l’hypothèse de dés équilibrés au niveau de test 5%.

Le test de Kolmogorov Smirnov

L'idée

On considère un échantillon dont la loi de probabilité est continue.
Revenons à notre exemple de la consommation d'essence. Pour évaluer si cet échantillon peut être considéré comme gaussien, on peut étudier l'écart entre la fonction de répartition d'une loi normale et celle estimée de notre échantillon : la fonction de répartition empirique !
Plus cette quantité est grande, plus on est enclin à rejeter l'hypothèse comme quoi l'échantillon est gaussien. Le test du Kolmogorov-Smirnov, qui permet de tester toute loi de probabilité, repose sur l'écart maximum observé entre les deux fonctions de répartition, l'empirique et la théorique testée. La loi de cette statistique est toujours la même quelle que soit la loi testée, et est connue asymptotiquement : on peut donc réaliser sans souci un test d'adéquation.

Le test

Soit (X1,,Xn) un échantillon i.i.d de même loi que X admettant F comme fonction de répartition.
On souhaite tester :

{H0:F=F0H1:FF0

F0 est connue.
On utilise à cet effet le test de Kolmogorov-Smirnov avec comme statistique :

Dn=supxR|Femp(x)F0(x)|

Femp est la fonction de répartition empirique de l'échantillon :

Femp(x)=1ni=1n1Xix

La statistique de test Dn est basée sur la distance maximale entre la fonction de répartition empirique de l'échantillon, estimation de sa fonction de répartition, et F0.

La loi asymptotique de Dn sous H0 est connue. Son équation, pas très explicite, n'est pas donnée ici ; elle est néanmoins implémentée dans les logiciels et permet de déterminer la p-valeur, utilisée en pratique pour la prise de décision.

Le coin R : exemple de la consommation d'essence

On peut tester l’adéquation de la consommation d’essence à une loi normale à l’aide de Kolmogorov-Smirnov :

ks.test(essence$conso,"pnorm",mean=mean(essence$conso),sd=sd(essence$conso))

## Warning in ks.test(essence$conso, "pnorm", mean = mean(essence$conso), sd
## = sd(essence$conso)): ties should not be present for the Kolmogorov-Smirnov
## test

## 
## Results of Hypothesis Test
## --------------------------
## 
## Alternative Hypothesis: two-sided
## 
## Test Name: One-sample Kolmogorov-Smirnov test
## 
## Data: essence$conso
## 
## Test Statistic: D = 0.04830966
## 
## P-value: 0.9262283

On ne peut donc pas rejeter l’hypothèse de normalité au niveau de test 5%.

On aurait également pu lancer un test de Shapiro-Wilk :

shapiro.test(essence$conso)
## 
## Results of Hypothesis Test
## --------------------------
## 
## Alternative Hypothesis: 
## 
## Test Name: Shapiro-Wilk normality test
## 
## Data: essence$conso
## 
## Test Statistic: W = 0.9871523
## 
## P-value: 0.2743285

Résumons !

Au cours de cette partie 4, nous avons vu beaucoup de tests statistiques différents. Voici un petit résumé des différents types de tests que nous avons vu :

  • Tests sur les paramètres de la loi d'un échantillon :

    • sur une proportion,

    • sur une moyenne,

    • sur une variance.

  • Test de comparaison de deux échantillons (gaussiens).

  • Tests d'adéquation à une loi :

    • dans le cas discret : test du Khi-deux.

    • dans le cas continu : test de Kolmogorov-Smirnov.

Exemple de certificat de réussite
Exemple de certificat de réussite