Contenu du cours
Théorie Avancée des Probabilités
Théorie Avancée des Probabilités
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 :
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
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 :
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')
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.
Merci pour vos commentaires !