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