Test de Bartlett

Le test de Bartlett est un test statistique utilisé pour vérifier l’homogénéité des variances entre plusieurs groupes. Ce test est souvent appliqué avant de réaliser des tests paramétriques comme l’ANOVA (analyse de variance), qui suppose que les variances des groupes sont égales. Contrairement au test de Levene, le test de Bartlett est plus sensible aux données normalement distribuées.

Hypothèses du Test de Bartlett

Méthode de Calcul

Le test de Bartlett repose sur le rapport des variances des groupes comparés. Plus précisément, il utilise un test statistique basé sur la log-vraisemblance des variances. La statistique du test suit une distribution χ² (chi-carré) sous l’hypothèse nulle.

Formule du Test de Bartlett

La statistique du test

T2T^2

pour

kk

groupes avec

n1,n2,...,nkn_1, n_2, …, n_k

observations dans chaque groupe et variances

s12,s22,...,sk2s_1^2, s_2^2, …, s_k^2

est donnée par :

 

T2=(nk)(k1)ln(i=1ksi2i=1ksi2)T^2 = \frac{(n – k)}{(k – 1)} \ln\left(\frac{\prod_{i=1}^k s_i^2}{\prod_{i=1}^k s_i^2}\right)

nn

est le nombre total d’observations et

kk

est le nombre de groupes.

Interprétation des Résultats

Fonctions :

  • stats.bartlett()

    La fonction stats.bartlett() de SciPy effectue un test de Bartlett, qui teste l'hypothèse nulle selon laquelle plusieurs échantillons ont des variances égales. Contrairement au test de Levene, le test de Bartlett suppose que les données suivent une distribution normale. Il est particulièrement utile pour tester l'homogénéité des variances dans des contextes où les données sont normalement distribuées. Si cette hypothèse de normalité est violée, les résultats du test peuvent être biaisés.

    Importation :

    from scipy import stats

    Attributs :

    Nom Type Description
    values array-like, list of arrays Les données des différents groupes à comparer. Chaque groupe doit être un tableau ou une liste d'échantillons.

    Exemple de code :

    from scipy import stats
    import numpy as np
    
    # Création de trois échantillons d'exemple
    sample_1 = np.array([23, 21, 19, 22, 20, 24, 25])
    sample_2 = np.array([30, 29, 31, 28, 30, 29, 32])
    sample_3 = np.array([18, 17, 15, 16, 20, 22, 21])
    
    # Réalisation du test de Bartlett pour tester l'égalité des variances
    statistic, p_value = stats.bartlett(sample_1, sample_2, sample_3)
    
    # Affichage de la statistique et de la p-valeur
    print(f'Statistique de Bartlett: {statistic}')
    print(f'P-valeur: {p_value}')
    Résultat du code

    Explication du code :

    from scipy import stats importe le module stats de la bibliothèque scipy, qui propose des fonctions statistiques permettant de réaliser des tests d'hypothèses, des analyses de variance, etc.

    import numpy as np importe la bibliothèque numpy, renommée ici en np, utilisée pour créer des tableaux (arrays) et effectuer des calculs numériques efficaces.

    Création de trois échantillons d'exemple

    sample_1 = np.array([23, 21, 19, 22, 20, 24, 25]) crée un tableau sample_1 contenant les valeurs de l'échantillon 1, représentant des données d'un groupe d'observations.

    sample_2 = np.array([30, 29, 31, 28, 30, 29, 32]) crée un tableau sample_2 contenant les valeurs de l'échantillon 2, pour un autre groupe d'observations.

    sample_3 = np.array([18, 17, 15, 16, 20, 22, 21]) crée un tableau sample_3 contenant les valeurs de l'échantillon 3, pour un troisième groupe d'observations.

    Réalisation du test de Bartlett pour tester l'égalité des variances

    statistic, p_value = stats.bartlett(sample_1, sample_2, sample_3) applique le test de Bartlett, qui permet de tester l'hypothèse nulle selon laquelle les variances des échantillons sont égales. Ce test est particulièrement adapté aux données qui suivent une distribution normale. Il retourne deux valeurs : statistic, la statistique du test de Bartlett, et p_value, la p-valeur associée au test.

    Affichage de la statistique et de la p-valeur

    print(f'Statistique de Bartlett: {statistic}') affiche la valeur de la statistique de Bartlett. Cette statistique évalue si les variances des échantillons sont homogènes.

    print(f'P-valeur: {p_value}') affiche la p-valeur associée au test. Si la p-valeur est inférieure à un seuil de signification (généralement 0.05), cela indique que les variances des échantillons sont significativement différentes, et donc on rejette l'hypothèse nulle d'égalité des variances.