Effectuer un test T en Python

Effectuer un test T en Python

Nœud source: 1902069

Effectuer un test T en Python
Image par l'éditeur

Faits marquants

  • Le test t est un test statistique qui peut être utilisé pour déterminer s'il existe une différence significative entre les moyennes de deux échantillons de données indépendants.
  • Nous illustrons comment un test t peut être appliqué à l'aide de l'ensemble de données iris et de la bibliothèque Scipy de Python.

Le test t est un test statistique qui peut être utilisé pour déterminer s'il existe une différence significative entre les moyennes de deux échantillons de données indépendants. Dans ce didacticiel, nous illustrons la version la plus basique du test t, pour laquelle nous supposerons que les deux échantillons ont des variances égales. D'autres versions avancées du test t incluent le test t de Welch, qui est une adaptation du test t, et est plus fiable lorsque les deux échantillons ont des variances inégales et éventuellement des tailles d'échantillon inégales.

La statistique t ou la valeur t est calculée comme suit :

 

Effectuer un test T en Python
 

De Équation

Équation est la moyenne de l'échantillon 1, Équation est la moyenne de l'échantillon 2, Équation est la variance de l'échantillon 1, Équation est la variance de l'échantillon 2, Équation est la taille de l'échantillon de l'échantillon 1, et Équation est la taille de l'échantillon de l'échantillon 2.

Pour illustrer l'utilisation du test t, nous allons montrer un exemple simple utilisant l'ensemble de données de l'iris. Supposons que nous observions deux échantillons indépendants, par exemple des longueurs de sépales floraux, et que nous examinions si les deux échantillons provenaient de la même population (par exemple la même espèce de fleur ou deux espèces avec des caractéristiques de sépales similaires) ou de deux populations différentes.

Le test t quantifie la différence entre les moyennes arithmétiques des deux échantillons. La valeur de p quantifie la probabilité d'obtenir les résultats observés, en supposant que l'hypothèse nulle (que les échantillons sont tirés de populations ayant les mêmes moyennes de population) est vraie. Une valeur de p supérieure à un seuil choisi (par exemple 5 % ou 0.05) indique qu'il est peu probable que notre observation se soit produite par hasard. Par conséquent, nous acceptons l'hypothèse nulle de moyennes de population égales. Si la valeur de p est inférieure à notre seuil, alors nous avons des preuves contre l'hypothèse nulle de moyennes de population égales.

Entrée de test T

Les entrées ou paramètres nécessaires pour effectuer un test t sont :

  • Deux tableaux a ainsi que b contenant les données de l'échantillon 1 et de l'échantillon 2

Sorties de test T

Le test t renvoie les éléments suivants :

  • Les statistiques t calculées
  • La valeur p

Importer les bibliothèques nécessaires

import numpy as np
from scipy import stats import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

 

Charger l'ensemble de données Iris

from sklearn import datasets
iris = datasets.load_iris()
sep_length = iris.data[:,0]
a_1, a_2 = train_test_split(sep_length, test_size=0.4, random_state=0)
b_1, b_2 = train_test_split(sep_length, test_size=0.4, random_state=1)

 

Calculer les moyennes d'échantillon et les variances d'échantillon

mu1 = np.mean(a_1) mu2 = np.mean(b_1) np.std(a_1) np.std(b_1)

 

Mettre en œuvre le test t

stats.ttest_ind(a_1, b_1, equal_var = False)

 

Sortie 

Ttest_indResult(statistic=0.830066093774641, pvalue=0.4076270841218671)

 

stats.ttest_ind(b_1, a_1, equal_var=False)

 

Sortie 

Ttest_indResult(statistic=-0.830066093774641, pvalue=0.4076270841218671)

 

stats.ttest_ind(a_1, b_1, equal_var=True)

 

Sortie

Ttest_indResult(statistic=0.830066093774641, pvalue=0.4076132965045395)

Observations

Nous observons que l'utilisation de "true" ou "false" pour le paramètre "equal-var" ne change pas beaucoup les résultats du test t. Nous observons également que l'échange de l'ordre des tableaux d'échantillons a_1 et b_1 donne une valeur de test t négative, mais ne change pas l'amplitude de la valeur de test t, comme prévu. Étant donné que la valeur de p calculée est bien supérieure à la valeur seuil de 0.05, nous pouvons rejeter l'hypothèse nulle selon laquelle la différence entre les moyennes de l'échantillon 1 et de l'échantillon 2 est significative. Cela montre que les longueurs des sépales pour l'échantillon 1 et l'échantillon 2 ont été tirées des mêmes données de population.

a_1, a_2 = train_test_split(sep_length, test_size=0.4, random_state=0)
b_1, b_2 = train_test_split(sep_length, test_size=0.5, random_state=1)

 

Calculer les moyennes d'échantillon et les variances d'échantillon

mu1 = np.mean(a_1) mu2 = np.mean(b_1) np.std(a_1) np.std(b_1)

 

Mettre en œuvre le test t

stats.ttest_ind(a_1, b_1, equal_var = False)

 

Sortie

stats.ttest_ind(a_1, b_1, equal_var = False)

Observations

Nous observons que l'utilisation d'échantillons de taille inégale ne modifie pas significativement la statistique t et la valeur p. 
 

Effectuer un test T en Python

 

En résumé, nous avons montré comment un simple test t pouvait être implémenté à l'aide de la bibliothèque scipy en python.
 
 
Benjamin O.Tayo est un physicien, un éducateur en science des données et un écrivain, ainsi que le propriétaire de DataScienceHub. Auparavant, Benjamin enseignait l'ingénierie et la physique à l'Université de Central Oklahoma, à l'Université du Grand Canyon et à l'Université de l'État de Pittsburgh.
 

Horodatage:

Plus de KDnuggetsGenericName