CommencerCommencer gratuitement

Test d’hypothèse par bootstrap sur les comptages de spermatozoïdes d’abeilles

Vous allez maintenant tester l’hypothèse suivante : en moyenne, les faux-bourdons traités avec un insecticide néonicotinoïde ont le même nombre de spermatozoïdes actifs par millilitre de sperme que les faux-bourdons non traités. Vous utiliserez la différence de moyennes comme statistique de test.

Pour rappel, la signature d’appel de la fonction draw_bs_reps() que vous avez écrite au chapitre 2 est draw_bs_reps(data, func, size=1).

Cet exercice fait partie du cours

Réflexion statistique en Python (Partie 2)

Afficher le cours

Instructions

  • Calculez la moyenne du nombre de spermatozoïdes vivants de control moins celle de treated.
  • Calculez la moyenne de tous les comptages de spermatozoïdes vivants. Pour cela, concaténez d’abord control et treated, puis prenez la moyenne du tableau concaténé.
  • Générez des jeux de données décalés pour control et treated de sorte que les jeux décalés aient la même moyenne. Cela a déjà été fait pour vous.
  • Générez 10 000 réplicats bootstrap de la moyenne pour chacun des deux tableaux décalés. Utilisez votre fonction draw_bs_reps().
  • Calculez les réplicats bootstrap de la différence de moyennes.
  • Le code pour calculer et afficher la valeur p a été écrit pour vous. Cliquez sur Soumettre la réponse pour voir le résultat !

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Compute the difference in mean sperm count: diff_means
diff_means = ____

# Compute mean of pooled data: mean_count
mean_count = ____

# Generate shifted data sets
control_shifted = control - np.mean(control) + mean_count
treated_shifted = treated - np.mean(treated) + mean_count

# Generate bootstrap replicates
bs_reps_control = ____(____,
                       np.mean, size=10000)
bs_reps_treated = ____(____,
                       np.mean, size=10000)

# Get replicates of difference of means: bs_replicates
bs_replicates = ____

# Compute and print p-value: p
p = np.sum(bs_replicates >= np.mean(control) - np.mean(treated)) \
            / len(bs_replicates)
print('p-value =', p)
Modifier et exécuter le code