Vérification d'hypothèse – Différence de moyennes
Nous voulons vérifier l'hypothèse selon laquelle il existe une différence entre les dons moyens reçus de A et de B. Plus tôt, vous avez appris à générer une permutation des données. Maintenant, nous allons générer une distribution nulle de la différence des moyennes, puis calculer la valeur p.
Pour la distribution nulle, nous générons d'abord plusieurs ensembles de données permutés et enregistrons la différence des moyennes pour chaque cas. Nous calculons ensuite la statistique de test comme la différence des moyennes avec l'ensemble de données original. Enfin, nous approchons la valeur p en calculant deux fois la fraction des 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 signification statistique.
Cette activité fait partie du cours
Simulation statistique en Python
Instructions de l’exercice
- 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 réglonsaxis=1pour obtenir une moyenne par ensemble 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 ce code d’exemple.
# 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))