Comment effectuer des tests t chez Pandas (3 exemples)



Les exemples suivants montrent comment effectuer trois tests t différents à l’aide d’un DataFrame pandas :

  • Test t indépendant à deux échantillons
  • Test t à deux échantillons de Welch
  • Test t pour échantillons appariés

Exemple 1 : Test t indépendant à deux échantillons chez les pandas

Un test t indépendant à deux échantillons est utilisé pour déterminer si les moyennes de deux populations sont égales.

Par exemple, supposons qu’un professeur veuille savoir si deux méthodes d’étude différentes conduisent à des notes moyennes différentes aux examens.

Pour tester cela, il recrute 10 étudiants pour utiliser la méthode A et 10 étudiants pour utiliser la méthode B.

Le code suivant montre comment saisir les scores de chaque élève dans un DataFrame pandas, puis utiliser la fonction ttest_ind() de la bibliothèque SciPy pour effectuer un test t indépendant à deux échantillons :

import pandas as pd
from scipy.stats import ttest_ind

#create pandas DataFrame
df = pd.DataFrame({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#view first five rows of DataFrame
df.head()

  method  score
0      A     71
1      A     72
2      A     72
3      A     75
4      A     78

#define samples
group1 = df[df['method']=='A']
group2 = df[df['method']=='B']

#perform independent two sample t-test
ttest_ind(group1['score'], group2['score'])

Ttest_indResult(statistic=-2.6034304605397938, pvalue=0.017969284594810425)

À partir du résultat, nous pouvons voir :

  • statistique du test t : – 2,6034
  • Valeur p : 0,0179

Puisque la valeur p est inférieure à 0,05, nous rejetons l’hypothèse nulle du test t et concluons qu’il existe suffisamment de preuves pour affirmer que les deux méthodes conduisent à des notes moyennes différentes aux examens.

Exemple 2 : Test t de Welch chez les pandas

Le test t de Welch est similaire au test t indépendant à deux échantillons, sauf qu’il ne suppose pas que les deux populations dont proviennent les échantillons ont une variance égale .

Pour effectuer le test t de Welch sur exactement le même ensemble de données que l’exemple précédent, nous devons simplement spécifier égal_var=False dans la fonction ttest_ind () comme suit :

import pandas as pd
from scipy.stats import ttest_ind

#create pandas DataFrame
df = pd.DataFrame({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#define samples
group1 = df[df['method']=='A']
group2 = df[df['method']=='B']

#perform Welch's t-test
ttest_ind(group1['score'], group2['score'], equal_var=False)

Ttest_indResult(statistic=-2.603430460539794, pvalue=0.02014688617423973)

À partir du résultat, nous pouvons voir :

  • statistique du test t : – 2,6034
  • Valeur p : 0,0201

Puisque la valeur p est inférieure à 0,05, nous rejetons l’hypothèse nulle du test t de Welch et concluons qu’il existe suffisamment de preuves pour affirmer que les deux méthodes conduisent à des résultats moyens différents aux examens.

Exemple 3 : Test t pour échantillons appariés chez Pandas

Un test t pour échantillons appariés est utilisé pour déterminer si deux moyennes de population sont égales dans lesquelles chaque observation dans un échantillon peut être associée à une observation dans l’autre échantillon.

Par exemple, supposons qu’un professeur veuille savoir si deux méthodes d’étude différentes conduisent à des notes moyennes différentes aux examens.

Pour tester cela, il recrute 10 étudiants pour utiliser la méthode A puis passer un test. Ensuite, il laisse les mêmes 10 étudiants ayant utilisé la méthode B se préparer et passer un autre test de difficulté similaire.

Puisque tous les étudiants apparaissent dans les deux échantillons, nous pouvons effectuer un test t pour échantillons appariés dans ce scénario.

Le code suivant montre comment saisir les scores de chaque élève dans un DataFrame pandas, puis utiliser la fonction ttest_rel() de la bibliothèque SciPy pour effectuer un test t d’échantillons appariés :

import pandas as pd
from scipy.stats import ttest_rel

#create pandas DataFrame
df = pd.DataFrame({'method': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                              'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   'score': [71, 72, 72, 75, 78, 81, 82, 83, 89, 91, 80, 81, 81,
                             84, 88, 88, 89, 90, 90, 91]})

#view first five rows of DataFrame
df.head()

  method  score
0      A     71
1      A     72
2      A     72
3      A     75
4      A     78

#define samples
group1 = df[df['method']=='A']
group2 = df[df['method']=='B']

#perform independent two sample t-test
ttest_rel(group1['score'], group2['score'])

Ttest_relResult(statistic=-6.162045351967805, pvalue=0.0001662872100210469)

À partir du résultat, nous pouvons voir :

  • statistique du test t : – 6,1620
  • Valeur p : 0,0001

Puisque la valeur p est inférieure à 0,05, nous rejetons l’hypothèse nulle du test t pour échantillons appariés et concluons qu’il existe suffisamment de preuves pour affirmer que les deux méthodes conduisent à des résultats moyens différents aux examens.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes en Python :

Comment effectuer un test d’indépendance du chi carré en Python
Comment effectuer une ANOVA unidirectionnelle en Python
Comment effectuer le test exact de Fisher en Python

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *