Aller au contenu

Statistique non paramétrique

Une équipe produit compare deux versions d’une page web. Sur douze sessions, la durée médiane est de deux minutes, mais une session oubliée dans un onglet ouvert affiche quarante minutes et fait exploser la moyenne. Le test t de Student, qui suppose des données à peu près normales, n’est pas fait pour ce genre de mesure. La statistique non paramétrique propose des outils qui fonctionnent avec des hypothèses beaucoup plus faibles : on travaille sur les rangs des observations plutôt que sur leurs valeurs, on rééchantillonne les données pour estimer l’incertitude, on estime une densité sans lui imposer de forme.

Ce cours présente les tests de rang classiques (signe, Wilcoxon, Mann-Whitney, Kruskal-Wallis, Friedman), les corrélations de rang, le test de Kolmogorov-Smirnov, le bootstrap, les tests de permutation et l’estimation de densité par noyau. Chaque méthode est calculée à la main sur un petit exemple, puis mise en œuvre en Python (scipy.stats) et en R. Vous verrez aussi pourquoi ces outils sont omniprésents en data science : l’aire sous la courbe ROC est une statistique de Mann-Whitney, et la comparaison rigoureuse de modèles repose souvent sur Wilcoxon ou Friedman.

À la fin de ce cours, vous serez capable de :

  • Justifier le choix d’une méthode non paramétrique (petit échantillon, loi asymétrique, valeurs aberrantes, données ordinales) et en connaître le coût en puissance.
  • Calculer à la main les statistiques de rang usuelles et interpréter leurs p-valeurs exactes ou approchées.
  • Choisir le bon test selon le plan d’expérience : un échantillon, données appariées, deux ou plusieurs groupes indépendants, blocs.
  • Mesurer un lien monotone avec Spearman et Kendall, et comparer des lois entières avec Kolmogorov-Smirnov.
  • Construire un intervalle de confiance par bootstrap et un test par permutation, et estimer une densité par noyau en choisissant une largeur de bande.
  • Mettre en œuvre tout cela avec scipy.stats et R, et l’appliquer à l’évaluation de modèles.
  • Les bases des probabilités : fonction de répartition, densité, espérance, quantiles. Le premier chapitre en fait un rappel rapide. Voir aussi le cours de Probabilités.
  • Le principe d’un test d’hypothèses : hypothèse nulle, p-valeur, risque de première espèce, et les tests paramétriques classiques (test t, ANOVA, corrélation de Pearson). C’est l’objet du cours de Statistiques.
  • Un peu de Python. Le R est présenté en parallèle, mais n’est pas indispensable.
  1. Découvrez pourquoi se passer des lois paramétriques : rappels de probabilités avec scipy.stats, lois à queues lourdes, moyenne et médiane, rangs, fonction de répartition empirique.
  2. Testez une médiane avec le test du signe et Wilcoxon : un échantillon ou des paires, loi binomiale, rangs signés, loi exacte et approximation normale.
  3. Comparez deux groupes avec Mann-Whitney : somme des rangs, statistique U, estimateur de Hodges-Lehmann et lien avec l’AUC.
  4. Comparez plusieurs groupes avec Kruskal-Wallis et Friedman : l’ANOVA des rangs, les blocs, les comparaisons multiples et la comparaison de modèles sur plusieurs jeux de données.

Partie 2 · Mesurer des liens, des lois et l’incertitude

Section intitulée « Partie 2 · Mesurer des liens, des lois et l’incertitude »
  1. Mesurez un lien monotone avec Spearman et Kendall : corrélations de rang, paires concordantes et discordantes, robustesse face à Pearson.
  2. Comparez des lois entières avec Kolmogorov-Smirnov et les noyaux : test d’ajustement, test à deux échantillons, estimation de densité par noyau et choix de la largeur de bande.
  3. Rééchantillonnez avec le bootstrap et les permutations : intervalles de confiance par bootstrap, tests de permutation, application aux métriques de modèles.

Chaque chapitre se termine par un résumé et des exercices corrigés, de difficulté croissante.

Ce cours correspond à l’enseignement de statistique non paramétrique (Nonparametric Statistics) suivi en anglais au RIT (Rochester Institute of Technology, États-Unis), pendant un semestre d’échange de six mois.

Soyons honnêtes sur les sources : les supports du cours ne sont plus accessibles, et il n’en reste que des notes courtes qui couvrent seulement son début, un rappel de probabilités mené en Python avec scipy.stats (fonction de répartition, loi binomiale, densité, familles position-échelle, loi de Student et loi de Cauchy, quantiles, espérance). Ce contenu, relu et corrigé sur quelques points, forme le début du chapitre 1.

Tout le reste du cours, c’est-à-dire la très grande majorité des chapitres, est reconstitué d’après le programme standard d’un cours de statistique non paramétrique et d’après des ouvrages de référence du domaine et la documentation de SciPy et de R. Ce n’est donc pas un relevé fidèle de ce qui a été enseigné au RIT, mais le contenu qu’on attend d’un tel cours. Les exemples, les jeux de données (tous inventés) et les exercices sont originaux, et tous les calculs numériques ont été vérifiés par programme.