Tests d'adéquation
Les cinq détecteurs de la page précédente choisissaient entre deux lois données. Le chapitre 1 a posé la question qui vient avant, la loi retenue décrit-elle les données, et l'a tranchée à l'œil. Cette page en fait une décision chiffrée : la section 1 pose l'adéquation comme un problème de détection, la section 2 construit le test du
1. Problématique
Un serveur enregistre le nombre de requêtes reçues chaque seconde pendant
La question se coule dans le cadre de la page précédente, à ceci près que l'hypothèse porte cette fois sur le modèle lui-même :
Les deux hypothèses ne sont pas de même nature. Seule
Cette asymétrie a une conséquence qui gouverne toute la page : le test rejette ou ne rejette pas, il ne valide jamais.
2. Test du d'adéquation
Hypothèses
Trois hypothèses définissent ce cadre :
- Données groupées. Les observations sont réparties en
classes disjointes couvrant tout le support du modèle. Le symbole compte ici des classes, non des hypothèses comme au §3 des fondations. - Effectifs suffisants. Chaque classe reçoit un effectif attendu
, faute de quoi les classes voisines sont fusionnées. - Paramètres estimés par maximum de vraisemblance. Si
paramètres du modèle sont inconnus, ils sont estimés sur les mêmes données, par MLE.
Expression
L'idée est de comparer, classe par classe, l'effectif observé à celui que le modèle prédit.
Définition, Statistique du
La statistique de test est la somme des écarts quadratiques normalisés :
où
est l'effectif observé de la classe , est l'effectif attendu sous le modèle, dont le chapeau rappelle qu'il dépend du paramètre estimé, est le nombre de classes.
Chaque terme est un écart au carré rapporté à l'effectif attendu, la variance d'un comptage étant elle-même de l'ordre de cet effectif : une différence de dix unités ne pèse pas le même poids sur une classe qui en attend douze et sur une classe qui en attend mille. La statistique est nulle pour un accord parfait et grandit dès qu'une classe s'écarte, dans un sens ou dans l'autre. La règle de décision est celle de toute la page précédente, décider
Propriétés
Proposition, Loi asymptotique sous
Sous
degrés de liberté, où
Les deux soustractions ont chacune leur cause. Le
Confusion classique
« Le nombre de degrés de liberté vaut
Implémentation
Les quatre étapes du §2 de la page précédente valent ici sans changement, l'étape de calibration comprise :
- grouper les observations en classes et compter les effectifs observés ;
- estimer les paramètres du modèle, puis en déduire les effectifs attendus ;
- évaluer la statistique
; - comparer au seuil, lu sur la loi du
ou calibré par simulation sous .
import numpy as np
import scipy.stats as sta
edges = np.array([0, 2, 3, 4, 5, 6, 7]) # class lower bounds, last one open
def observed(x):
"""Counts per class; the last class gathers everything above its bound."""
return np.histogram(x, bins=np.append(edges, 1e9))[0]
def expected(x):
"""Counts predicted by a Poisson model whose parameter is fitted on x."""
lam = x.mean() # MLE of the Poisson parameter
hi = sta.poisson.cdf(np.append(edges[1:] - 1, np.inf), lam)
lo = sta.poisson.cdf(edges - 1, lam)
return len(x) * (hi - lo)
def T(x):
"""Chi-square goodness-of-fit statistic."""
o, e = observed(x), expected(x)
return np.sum((o - e) ** 2 / e)
nu = len(edges) - 1 - 1 # K - 1 - r, one parameter fitted
gamma = sta.chi2.ppf(0.95, nu) # >>> 11.0705 (nu = 5)import scipy.stats as sta
# ddof counts the parameters fitted on the data; scipy then uses K - 1 - ddof
stat, p_value = sta.chisquare(observed(x), expected(x), ddof=1)Le seuil peut aussi se calibrer sans invoquer la loi asymptotique, par la simulation de Monte-Carlo : engendrer
Illustration
Si la proposition est exacte, l'histogramme de
Figure 3.9, Loi de figures/ch3/03-adequation-loi-h0.py).
L'histogramme épouse la densité théorique, et le quantile empirique à
Exemple : requêtes sur un serveur
Deux séries de
| Série | Moyenne | Variance | Décision | |
|---|---|---|---|---|
| Trafic régulier | non rejeté | |||
| Trafic par rafales | rejeté |
La première série donne
3. La p-value
Le test précédent exige de fixer
Définition
Définition, p-value
La p-value d'une observation est la probabilité, sous
où
est la valeur de la statistique sur les données reçues, - la probabilité est calculée sous le modèle
, seul entièrement spécifié.
La p-value est donc la
Confusion classique
«
4. Portée et limites
Illustration
Un test qui ne rejette pas ne dit rien tant que sa capacité à rejeter n'est pas connue. Confrontons donc le test au trafic par rafales, un modèle faux par construction, pour différentes tailles d'échantillon.
Figure 3.10, Fréquence de rejet du modèle de Poisson au niveau figures/ch3/03-adequation-puissance.py).
La courbe orange reste collée au niveau visé quelle que soit la taille de l'échantillon : le test tient sa promesse de fausse alarme. La courbe bleue, elle, part de très bas : à
Confusion classique
« Le test ne rejette pas, donc le modèle est bon. » Non : ne pas rejeter, c'est manquer de preuves contre le modèle, jamais en avoir pour lui. La figure 3.10 le chiffre : à
Le défaut symétrique guette à l'autre extrémité. Aucun modèle n'est exactement vrai, et la puissance croît avec
Extension : données continues (Kolmogorov-Smirnov)
Le
où
c'est-à-dire la proportion des mesures qui ne dépassent pas sta.kstest la calcule.
Une réserve accompagne son usage courant. La loi de
5. Résumé
Deux tests ont été construits dans cette page, tous deux instances du cadre de la page précédente, appliqué cette fois au modèle lui-même.
| Test | Statistique | Données | Loi sous |
|---|---|---|---|
| groupées en classes | |||
| Kolmogorov-Smirnov | continues, non groupées | tabulée si |
Le choix entre les deux suit la nature des données, comptages contre mesures continues, et non la commodité. Dans les deux cas, le seuil se lit sur une loi de référence quand ses conditions sont réunies, et se calibre par simulation sous
