Dans une analyse de données, comment savoir si un résultat observé reflète une véritable différence dans la réalité ou s'il s'agit d'une simple coïncidence due aux fluctuations du hasard ?
Par exemple : * Le nouveau design de notre site e-commerce convertit-il réellement mieux que l'ancien (test A/B) ? * Le temps moyen d'attente au standard a-t-il significativement diminué après la réorganisation ? * Y a-t-il un lien statistique avéré entre la catégorie socioprofessionnelle et la fidélité client ?
Pour répondre à ces questions avec une rigueur mathématique irréfutable, les statisticiens utilisent les tests d'hypothèses.
1. La démarche universelle d'un test statistique#
Tout test d'hypothèse repose sur une démarche en 5 étapes normalisées :
1. Formuler H0 et H1 ──► 2. Fixer le risque α (5 %) ──► 3. Calculer la p-valeur
│
┌───────────────────────────────┴───────────────────────────────┐
▼ ▼
Si p-value ≤ α Si p-value > α
Rejet de H0 (Significatif !) Non-rejet de H0 (Pas d'effet prouvé)
1. Les hypothèses concurrentes : \(H_0\) et \(H_1\)#
- L'hypothèse nulle (\(H_0\)) : C'est l'hypothèse conservatrice du « statu quo ». Elle postule qu'il n'y a aucun effet, aucune différence, et que l'écart observé est uniquement dû au hasard.
- L'hypothèse alternative (\(H_1\)) : C'est l'hypothèse de l'expérimentateur. Elle postule qu'il existe un effet réel, une vraie différence.
2. Le seuil de significativité (\(\alpha\))#
Généralement fixé à \(\alpha = 0.05\) (5 %). C'est le risque maximal consenti de rejeter \(H_0\) par erreur alors qu'elle était pourtant vraie (le risque de « faux positif »).
3. La règle de décision par la p-valeur (p-value)#
La p-valeur est la probabilité d'obtenir un résultat au moins aussi extrême que celui observé sous l'hypothèse que \(H_0\) soit vraie :
[!IMPORTANT] La règle d'or universelle :
* Si \(p \le 0.05\) : On rejette \(H_0\). L'effet est qualifié de statistiquement significatif au seuil de 5 %.
* Si \(p > 0.05\) : On ne rejette pas \(H_0\). On n'a pas réuni suffisamment de preuves statistiques pour conclure à une différence.
2. Le test \(t\) de Student pour une moyenne : t.test()#
On souhaite tester si le temps d'attente moyen \(\mu\) d'un service client est conforme à l'engagement contractuel de 5 minutes (\(\mu_0 = 5\)) :
- \(H_0 : \mu = 5\) minutes
- \(H_1 : \mu \ne 5\) minutes
attentes <- c(5.2, 5.8, 6.1, 4.9, 5.5, 6.3, 5.7, 5.9, 6.0, 5.4)
# Test de conformité à la valeur théorique mu = 5
test_un_echantillon <- t.test(attentes, mu = 5)
print(test_un_echantillon)
Sortie :
One Sample t-test
data: attentes
t = 5.2536, df = 9, p-value = 0.0005272
alternative hypothesis: true mean is not equal to 5
95 percent confidence interval:
5.378943 5.981057
sample estimates:
mean of x
5.68
Interprétation :
La p-valeur obtenue est \(p = 0.0005 < 0.05\). Nous rejetons l'hypothèse nulle \(H_0\). Le temps moyen observé (5,68 minutes) est significativement supérieur à l'engagement de 5 minutes.
3. Comparer deux moyennes indépendantes (Test A/B)#
On compare le panier moyen d'achat entre deux versions d'une page de vente : le groupe \(A\) (version classique) et le groupe \(B\) (nouvelle version) :
panier_A <- c(45, 52, 48, 60, 55, 49, 53, 58)
panier_B <- c(58, 65, 62, 70, 59, 66, 64, 72)
# Test de Student pour deux échantillons indépendants
test_ab <- t.test(panier_A, panier_B)
print(test_ab)
Sortie :
Welch Two Sample t-test
t = -4.5956, df = 13.91, p-value = 0.0004183
mean of x mean of y
52.500 64.500
Interprétation :
La p-valeur est \(0.0004 < 0.05\). On rejette \(H_0\). La version \(B\) génère un panier moyen (64,50 €) significativement supérieur à la version \(A\) (52,50 €). Le test A/B est validé avec succès !
4. Le test du \(\chi^2\) d'indépendance : chisq.test()#
Le test du Chi-deux (\(\chi^2\)) permet de déterminer si deux variables qualitatives sont indépendantes ou si elles sont liées statistiquement.
- \(H_0\) : Les deux variables sont indépendantes.
- \(H_1\) : Il existe une liaison significative entre les deux variables.
# Tableau croisant le type d'abonnement et la résiliation (Churn)
donnees_churn <- matrix(c(120, 30, # Sans engagement : 120 restés, 30 résiliés
280, 15), # Avec engagement : 280 restés, 15 résiliés
nrow = 2, byrow = TRUE)
colnames(donnees_churn) <- c("Fidèle", "Résilié")
rownames(donnees_churn) <- c("Sans_Engagement", "Avec_Engagement")
print(donnees_churn)
# Réalisation du test du Chi-2
test_khi2 <- chisq.test(donnees_churn)
print(test_khi2)
Sortie :
Pearson's Chi-squared test with Yates' continuity correction
X-squared = 19.345, df = 1, p-value = 1.091e-05
Interprétation :
La p-valeur est \(1.09 \times 10^{-5}\) (extrêmement proche de 0). Nous rejetons l'hypothèse d'indépendance \(H_0\). Il existe une liaison statistique très significative entre le type d'abonnement et la propension à résilier : les clients sans engagement ont un taux de résiliation beaucoup plus élevé.
Mise en pratique#
- Un constructeur affirme que ses batteries durent en moyenne 50 heures. Sur un échantillon de 12 batteries testées, vous obtenez les durées suivantes :
- Formulez les hypothèses \(H_0\) et \(H_1\).
- Exécutez le test de Student approprié avec
t.test(). - À la vue de la p-valeur, pouvez-vous rejeter l'affirmation du constructeur au seuil de 5 % ? Concluez en termes clairs.
Commentaires