Dans un monde guidé par les données, les entreprises ne peuvent plus se fier à l’intuition pour prendre des décisions critiques. Elles doivent s’appuyer sur des méthodes statistiques comme les tests d’hypothèse pour étayer leurs actions par des preuves solides. L’un des tests les plus utilisés est le test t, qui permet de comparer les moyennes de deux groupes et de déterminer si elles diffèrent significativement.
Mais comment appliquer concrètement un test t et comment en interpréter les résultats ? Dans ce tutoriel, nous allons répondre à ces questions et à d’autres. Nous vous guiderons à travers un scénario où vous souhaitez évaluer le succès d’une nouvelle fonctionnalité lancée par une entreprise. Nous verrons comment utiliser les tests t en Python et ses bibliothèques puissantes pour analyser les résultats.
À la fin de ce tutoriel, vous aurez une compréhension solide des tests t et saurez les appliquer à vos propres données en toute confiance.
Dans ce tutoriel, nous passerons en revue les différents types de tests t – test à un échantillon, test à deux échantillons, test apparié et test de Welch – ainsi que leurs applications et les cas d’usage recommandés.
Terminologie expliquée
Avant d’entrer dans le détail des tests t, revoyons rapidement quelques termes associés qui renforceront votre compréhension conceptuelle de ce test statistique.
Test d’hypothèse
Le test d’hypothèse consiste à partir d’une supposition, appelée hypothèse nulle, et à rechercher des éléments permettant de la rejeter. L’hypothèse nulle représente l’état de référence, tandis que l’hypothèse alternative exprime l’opposé de l’hypothèse nulle.
Par exemple, on peut utiliser un test d’hypothèse pour déterminer si une nouvelle fonctionnalité lancée par une entreprise reçoit un bon accueil client, ce qui se reflète dans l’indicateur de succès. Consultez notre cours sur les tests d’hypothèse pour aller plus loin.
Valeur p
La valeur p est la probabilité d’obtenir des résultats au moins aussi extrêmes que ceux observés, en supposant que l’hypothèse nulle est vraie. Une petite valeur p indique que la probabilité d’observer un tel résultat est très faible si l’hypothèse nulle est correcte.
Niveau de signification
Le niveau de signification, noté alpha, représente la probabilité de rejeter l’hypothèse nulle alors qu’elle est vraie. On parle aussi d’erreur de type I.
Significativité statistique
La significativité statistique correspond au degré de confiance indiquant que le résultat observé n’est pas dû au hasard. Attention, significatif statistiquement ne signifie pas nécessairement pertinent en pratique : l’effet peut rester négligeable opérationnellement. Une erreur d’échantillonnage peut aussi conduire à une significativité si l’échantillon ne représente pas fidèlement la population cible.
Hypothèses des tests t
Comprendre les hypothèses d’un test statistique est essentiel pour garantir des résultats fiables. Les tests t n’échappent pas à la règle. Toute violation de ces hypothèses peut mener à des conclusions trompeuses. Examinons en détail les quatre hypothèses des tests t :
Indépendance des observations
Premièrement, l’indépendance stipule que les observations ne sont pas influencées par un facteur implicite dans les données et ne sont pas corrélées dans le temps. Pour garantir l’indépendance, on peut appliquer diverses techniques de traitement des données dépendantes, comme l’explique l’Université du Texas à Austin.
Identiquement distribuées
Deuxièmement, la présence de valeurs aberrantes (données anormales) peut diminuer la statistique t et accroître la variance, ce qui affecte la probabilité de rejeter l’hypothèse nulle. Il est donc crucial d’identifier et de comprendre les causes de ces comportements anormaux pour déterminer s’il s’agit de données légitimes ou d’erreurs. Solliciter un expert métier peut aider à cerner la dynamique réelle des données.
Distribution normale
Troisièmement, le test t est valable pour des données suivant une loi normale. Des données asymétriques peuvent conduire à un rejet erroné de l’hypothèse nulle. Avec un nombre limité de points, il est difficile de tester la normalité. Dans ce cas, on peut recourir à des tests non paramétriques ne supposant pas de distribution particulière, ou effectuer une transformation des données pour se rapprocher de la normalité.
Variances égales
Enfin, pour que le test t classique s’applique, les deux populations comparées doivent avoir des variances égales. Cela peut être évalué graphiquement avec un Q-Q plot.
Maintenant que nous avons clarifié les hypothèses, explorons les différents types de tests t à l’aide d’un exemple en Python. À l’issue, vous saurez réaliser des tests t et interpréter leurs résultats avec assurance.
Test t à un échantillon
Le test t à un échantillon est un test d’hypothèse statistique qui permet de déterminer si une moyenne populationnelle inconnue (mu) est différente d’une valeur revendiquée.

Où :
x = moyenne de l’échantillon
𝝁 = moyenne de la population
S = écart-type de l’échantillon
n = taille de l’échantillon
t = statistique t
Illustrons par un exemple. Une entreprise affirme produire des roulements à billes de 10 cm de diamètre (hypothèse nulle). Vous décidez de vérifier cette affirmation. Vous collectez 21 roulements dans plusieurs magasins de la ville et mesurez leur diamètre. Vous devez déterminer si l’affirmation de l’entreprise est fausse (hypothèse alternative) à partir de ces mesures.
Le test est formulé comme suit :
Hypothèse nulle : H0 : x = 𝝁
Hypothèse alternative : Ha : x ≠ 𝝁

Pour invalider la revendication, vous devez montrer statistiquement que les mesures de l’échantillon diffèrent des 10 cm annoncés. Comme la taille de l’échantillon est 21 (inférieure à 30), on utilise un test t. Ici, la moyenne observée est de 11 cm et l’écart-type de 1 cm.
Exemple de test t à un échantillon en Python
Voyons comment réaliser un test t à un échantillon en Python avec la fonction scipy.stats.ttest_1samp().
import numpy as np
from scipy import stats
# Population Mean
mu = 10
# Sample Size
N1 = 21
# Degrees of freedom
dof = N1 - 1
# Generate a random sample with mean = 11 and standard deviation = 1
x = np.random.randn(N1) + 11
# Using the Stats library, compute t-statistic and p-value
t_stat, p_val = stats.ttest_1samp(a=x, popmean = mu)
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 4.689539773390642
p-value = 0.0001407967502139183
Interprétation des résultats
La statistique t vaut 4,69, une valeur très éloignée de 0 dans une t-distribution. Pour quantifier cet écart, on se réfère à la valeur p (présentée plus haut). La valeur p est inférieure au niveau de signification par défaut de 0,05, ce qui indique que la probabilité d’un tel résultat sous l’hypothèse nulle est quasi nulle : on peut donc rejeter l’hypothèse nulle.
Notez que le niveau de signification est défini au début de l’expérience.
Une autre approche
Effectuons le test t à un échantillon sans la fonction ttest_1samp(). La statistique t est ici définie par la différence entre la moyenne de l’échantillon et celle de la population, divisée par l’erreur standard, comme expliqué précédemment.
- Calculez d’abord la moyenne de l’échantillon (x_bar).
- Calculez ensuite l’écart-type de l’échantillon avec un degré de liberté égal à un.
- Calculez l’erreur standard en divisant l’écart-type par la racine carrée de la taille d’échantillon.
- Appliquez la formule du test t à un échantillon.
- Calculez la valeur p pour établir la significativité de la statistique t.
# Sample Mean
x_bar = x.mean()
# Standard Deviation
std = np.std(x, ddof=1)
# Standard Error
ste = std/np.sqrt(N1)
# Calculating the T-Statistics
t_stat = (x_bar - mu) / ste
# p-value of the t-statistic
p_val = 2*(1 - stats.t.cdf(abs(t_stat), df = dof))
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 4.689539773390642
p-value = 0.0001407967502139183
Comment réaliser un test t à deux échantillons en Python
Poursuivons l’exemple en supposant que l’entreprise ouvre une seconde usine pour produire les mêmes roulements. Nous devons déterminer si les roulements des deux usines diffèrent en taille. Dans ce cas, on utilise un test t à deux échantillons. La statistique t est définie comme suit.

Où :
X1 = moyenne du premier échantillon
X2 = moyenne du second échantillon
S1 = écart-type du premier échantillon
S2 = écart-type du second échantillon
N1 = taille du premier échantillon
N2 = taille du second échantillon
Exemple de test t à deux échantillons en Python
Supposons que la première usine partage 21 échantillons avec une moyenne de 10,5 cm, et la seconde 25 échantillons avec une moyenne de 9,5 cm. Les deux ont un écart-type de 1 cm.
# Sample Sizes
N1, N2 = 21, 25
# Degrees of freedom
dof = min(N1,N2) - 1
# Gaussian distributed data with mean = 10.5 and var = 1
x = np.random.randn(N1) + 10.5
# Gaussian distributed data with mean = 9.5 and var = 1
y = np.random.randn(N2) + 9.5
## Using the internal function from SciPy Package
t_stat, p_val = stats.ttest_ind(x, y)
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 3.18913308431476
p-value = 0.0026296199823557754
Interprétation des résultats
La valeur p de 0,0026, inférieure au seuil de 0,05, nous conduit à rejeter l’hypothèse nulle : les roulements issus des deux usines ne sont pas identiques.
Comment réaliser un test t apparié en Python
Après ces résultats, l’entreprise décide d’améliorer sa technologie de fabrication en introduisant une nouvelle machine de moulage. Elle lance un pilote dans l’une des usines et teste si la machine modifie le diamètre des roulements en comparant deux échantillons de 25 pièces : l’un avant l’installation, l’autre après.
Les diamètres moyens sont respectivement de 10,5 cm et 9,9 cm.
Exemple de test t apparié en Python
Réaliserons un test t apparié pour vérifier si le changement est statistiquement significatif.
# Sample Sizes
N = 25
# Degrees of freedom
dof = N - 1
# Gaussian distributed data with mean = 10.5 and var = 1
x = np.random.randn(N) + 10.5
# Gaussian distributed data with mean = 9.9 and var = 1
y = np.random.randn(N) + 9.9
t_stat, p_val = stats.ttest_rel(x,y)
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 3.446152658909739
p-value = 0.0021043953630465787
Interprétation des résultats
La faible valeur p indique que l’hypothèse nulle est rejetée, c’est-à-dire qu’il existe un changement du diamètre des roulements après l’introduction de la nouvelle machine de moulage.
Points d’attention pour le test t apparié
Les hypothèses du test t apparié portent sur les différences au sein de chaque paire, et non sur les observations brutes. Il est donc essentiel de vérifier que ces différences sont distribuées de manière symétrique et qu’elles ne contiennent pas de valeurs aberrantes.
Comment réaliser le test t de Welch en Python
Après un pilote concluant avec la nouvelle machine de moulage dans une première usine, l’entreprise souhaite tester, dans la seconde, une nouvelle machine de polissage. Cette machine produit des roulements très précis, mais sa performance peut être affectée par la température et les fluctuations de courant. L’entreprise veut déterminer si les roulements des deux usines diffèrent, en comparant 21 échantillons de la première usine et 25 de la seconde.
Exemple de test t de Welch en Python
Le diamètre moyen des roulements de la première usine est de 9,9 cm avec un écart-type de 1 cm, tandis que celui de la seconde est de 10 cm avec un écart-type de 3 cm. Comme les écarts-types diffèrent, nous utiliserons le test t de Welch.
# Sample Sizes
N1, N2 = 21, 25
# Degrees of freedom
dof = min(N1,N2) - 1
# Gaussian distributed data with mean = 9.9 and var = 1
x = np.random.randn(N1) + 9.9
# Gaussian distributed data with mean = 10 and var = 3
y = 3*np.random.randn(N2) + 10
## Using SciPy Package
t_stat, p_val = stats.ttest_ind(x, y, equal_var = False)
print("t-statistic = " + str(t_stat))
print("p-value = " + str(p_val))
t-statistic = 1.3828843424092643
p-value = 0.17753505304053804
Interprétation des résultats
La valeur p est supérieure au niveau de signification de 0,05, ce qui signifie que nous ne rejetons pas l’hypothèse nulle : les roulements des deux usines peuvent être considérés comme identiques. En raison de l’écart-type élevé du second échantillon, il serait prudent de collecter davantage de données pour renforcer la conclusion (par exemple, en vue d’un test z si les conditions le permettent).
Points d’attention pour le test t de Welch
Contrairement aux autres tests t, le test t de Welch s’applique lorsque les variances populationnelles sont inégales.
Conclusion
Les données révèlent les véritables dynamiques qui influencent les décisions business, à condition de poser les bonnes questions. Cela exige une compréhension robuste des différents tests statistiques et de leurs cas d’usage. Ce tutoriel se concentre sur les tests t et en rappelle les hypothèses sous-jacentes, comme l’indépendance des observations et la normalité.
En plus d’un rappel sur les tests d’hypothèse, ce tutoriel propose une vue d’ensemble des principaux tests t à l’aide d’exemples. Nous vous encourageons vivement à pratiquer les tests t en Python et à déterminer lequel convient le mieux pour évaluer la significativité statistique de votre expérimentation.