Un test d'hypothèse permet de décider si une différence observée entre deux groupes (ou par rapport à une valeur) est significative ou peut s'expliquer par le hasard.
H0 (hypothèse nulle) → pas d'effet, pas de différence
H1 (hypothèse alternative) → il y a une différenceOn calcule une statistique de test (ici t-statistic) et une p-value :
p-value = probabilité d'observer une différence ≥ à celle mesurée,
SI H0 est vraie.Si p-value < α (seuil habituel : 0.05) → on rejette H0 (différence significative). Si p-value ≥ α → on ne peut pas rejeter H0 (pas assez de preuves).
"Ne pas rejeter H0" ≠ "H0 est vraie". On dit juste qu'on n'a pas assez de preuves.
from scipy import stats
t_stat, p_value = stats.ttest_ind(groupe_a, groupe_b)Conditions d'application :
- les deux échantillons sont indépendants
- distribution approximativement normale (ou n grand)
- variances semblables (sinon ajouter equal_var=False)import numpy as np
from scipy import statsnp.random.seed(42)
groupe_a = np.random.normal(75, 10, 30)
groupe_b = np.random.normal(80, 10, 30)t_stat, p_value = stats.ttest_ind(groupe_a, groupe_b)
print(f't-statistic: {t_stat:.4f}')
print(f'p-value: {p_value:.4f}')alpha = 0.05
if p_value < alpha:
print('Rejet de H0 : différence significative')
else:
print('Non-rejet de H0 : pas de différence significative')stats.ttest_1samp(data, valeur) moyenne vs valeur de référence
stats.ttest_rel(avant, après) échantillons appariés (mêmes sujets)
stats.mannwhitneyu(a, b) non-paramétrique (pas besoin de normalité)
stats.chi2_contingency(table) indépendance entre 2 variables catégorielles
stats.f_oneway(a, b, c) ANOVA (comparer ≥ 3 groupes)p-value < 0.05 est une convention, pas une vérité absolue. Pour des décisions importantes, regarde aussi la taille de l'effet et l'intervalle de confiance.
Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →