Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Comparer les Moyennes de Deux Ensembles de Données Différents | Test des Hypothèses Statistiques
Théorie Avancée des Probabilités
course content

Contenu du cours

Théorie Avancée des Probabilités

Théorie Avancée des Probabilités

1. Déclarations Supplémentaires de la Théorie des Probabilités
2. Les Théorèmes Limites de la Théorie des Probabilités
3. Estimation des Paramètres de Population
4. Test des Hypothèses Statistiques

book
Comparer les Moyennes de Deux Ensembles de Données Différents

Une tâche appliquée assez importante est de comparer les espérances mathématiques de deux ensembles de données numériques indépendants différents.
Dans le cas général, cette tâche est résolue de manière assez non triviale, mais sous certaines conditions, cela peut être fait relativement simplement. Considérons les conditions suivantes :

Nous avons deux ensembles de données numériques indépendants avec des distributions gaussiennes et des variances égales (nous ne connaissons peut-être pas la valeur réelle de la variance, mais nous devons être sûrs que les variances sont égales). Nous voulons tester l'hypothèse suivante :

Hypothèse principale : les espérances de ces ensembles de données sont égales.

Hypothèse alternative : l'espérance de l'ensemble de données X est supérieure à celle de l'ensemble de données Y.

Critère statistique

Si les conditions décrites ci-dessus sont remplies, nous pouvons utiliser le critère suivant pour vérifier cette hypothèse :

Implémentation en Python

Générons deux ensembles de données indépendants avec des valeurs moyennes différentes et essayons de vérifier l'hypothèse :

123456789101112131415161718192021222324252627282930313233
import numpy as np import scipy.stats as stats import matplotlib.pyplot as plt # Generate two independent Gaussian datasets with different means and variances np.random.seed(123) # Set seed for reproducibility data1 = np.random.normal(loc=5, scale=2, size=500) # Generate first dataset data2 = np.random.normal(loc=4.7, scale=2, size=500) # Generate second dataset # Compute the two-sample t-test. By default, it checks the two-tailed hypothesis t_stat, p_value = stats.ttest_ind(data1, data2) # Define the significance level alpha = 0.05 # Compare the p-value with the significance level and print the result if p_value < alpha: print('Reject the null hypothesis that the means are equal') else: print('Fail to reject the null hypothesis that the means are equal') # Plot the critical regions of the t-test fig, ax = plt.subplots() # Create figure and axis objects x = np.linspace(-4, 4, 1000) # Generate x values for plotting y = stats.t.pdf(x, df=len(data1)+len(data2)-2) # Compute t-distribution PDF ax.plot(x, y, label='t-distribution') # Plot t-distribution t_crit_left = stats.t.ppf(alpha/2, len(data1)+len(data2)-2) # Compute left critical value t_crit_right = stats.t.ppf(1-alpha/2, len(data1)+len(data2)-2) # Compute right critical value ax.axvline(t_crit_left, color='r', linestyle='--', label='t-critical left') # Plot left critical value ax.axvline(t_crit_right, color='g', linestyle='--', label='t-critical right') # Plot right critical value ax.axvline(t_stat, color='k', linestyle='--', label='t-statistic') # Plot t-statistic ax.legend() # Add legend to the plot plt.show() # Show the plot
copy

Nous voyons que la valeur du critère est tombée dans la région critique droite, nous concluons donc que l'espérance mathématique du premier ensemble de données est supérieure à l'espérance mathématique du second.

Ensembles de données avec des variances différentes

Il existe également une généralisation de ce critère dans le cas où les variances des ensembles de données sont différentes, voyons un exemple de comment cela peut être implémenté en code :

1234567891011121314151617181920
import numpy as np import scipy.stats as stats import matplotlib.pyplot as plt # Generate two independent Gaussian datasets with different means and variances np.random.seed(123) data1 = np.random.normal(loc=5, scale=2, size=100) data2 = np.random.normal(loc=4.95, scale=4, size=100) # Compute the two-sample t-test t_stat, p_value = stats.ttest_ind(data1, data2, equal_var=False) # Define the significance level alpha = 0.05 # Compare the p-value with the significance level and print the result if p_value < alpha: print('Reject the null hypothesis that the means are equal') else: print('Fail to reject the null hypothesis that the means are equal')
copy

Dans le code ci-dessus, nous avons utilisé equal_var=False comme argument de la méthode stats.ttest_ind pour effectuer un test d'hypothèse sur des ensembles de données avec des variances différentes.

Pouvons-nous utiliser les tests t de Student avec des données non gaussiennes ?

Pouvons-nous utiliser les tests t de Student avec des données non gaussiennes ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 3
We're sorry to hear that something went wrong. What happened?
some-alt