Test d’hypothèse - Différence de moyennes
Nous voulons tester l’hypothèse selon laquelle la moyenne des dons reçus par A et B est différente. Vous avez appris précédemment à générer une permutation des données. Nous allons maintenant générer une distribution nulle de la différence de moyennes, puis calculer la valeur p.
Pour la distribution nulle, nous générons d’abord plusieurs jeux de données permutés et stockons la différence de moyennes pour chaque cas. Nous calculons ensuite la statistique de test comme la différence de moyennes avec le jeu de données original. Enfin, nous approchons la valeur p en calculant deux fois la fraction de cas où la différence est supérieure ou égale à la valeur absolue de la statistique de test (hypothèse bilatérale). Une valeur p inférieure, disons, à 0,05 peut alors indiquer une significativité statistique.
Cet exercice fait partie du cours
Simulation statistique en Python
Instructions
- Générez plusieurs permutations de
donations_Aetdonations_Bet affectez-les àperm. - Définissez
samplescomme la différence des moyennes depermuted_A_datasetsetpermuted_B_datasets. Nous définissonsaxis=1pour obtenir une moyenne par jeu de données plutôt qu’une moyenne globale. - Définissez
test_statcomme la différence des moyennes dedonations_Aetdonations_B. - Calculez la valeur p
p_valcomme deux fois la fraction des éléments desamplessupérieurs ou égaux à la valeur absolue detest_stat.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Generate permutations equal to the number of repetitions
perm = np.array([np.random.____(len(____) + len(____)) for i in range(reps)])
permuted_A_datasets = data[perm[:, :len(donations_A)]]
permuted_B_datasets = data[perm[:, len(donations_A):]]
# Calculate the difference in means for each of the datasets
samples = np.mean(____, axis=1) - np.mean(____, axis=1)
# Calculate the test statistic and p-value
test_stat = ____
p_val = 2*np.sum(____ >= np.abs(____))/reps
print("p-value = {}".format(p_val))