CommencezCommencez gratuitement

Test d'hypothèse bootstrap sur les comptes de spermatozoïdes d'abeilles

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

Pour référence, l'en-tête d'appel de la fonction draw_bs_reps() que vous avez écrite au chapitre 2 est draw_bs_reps(data, func, size=1).

Cette activité fait partie du cours

Réflexion statistique en Python (partie 2)

Voir le cours

Instructions de l’exercice

  • Calculez la moyenne du nombre de spermatozoïdes vivants de control moins celle de treated.
  • Calculez la moyenne de tous les comptes de spermatozoïdes vivants. Pour ce faire, concaténez d'abord control et treated, puis calculez 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 de données 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 des moyennes.
  • Le code pour calculer et afficher la valeur p a été écrit pour vous. Cliquez sur Soumettre pour voir le résultat !

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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