CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • 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 réglons axis=1 pour obtenir une moyenne par ensemble 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 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))
Modifier et exécuter le code