CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Générez plusieurs permutations de donations_A et donations_B et affectez-les à perm.
  • Définissez samples comme la différence des moyennes de permuted_A_datasets et permuted_B_datasets. Nous définissons axis=1 pour obtenir une moyenne par jeu de données plutôt qu’une moyenne globale.
  • Définissez test_stat comme la différence des moyennes de donations_A et donations_B.
  • Calculez la valeur p p_val comme deux fois la fraction des éléments de samples supérieurs ou égaux à la valeur absolue de test_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))
Modifier et exécuter le code