Bootstraphypotestest på biodronningarnas spermieantal
Nu ska du testa följande hypotes: I genomsnitt har hanbin som behandlats med neonikotinoid-insektsgift samma antal aktiva spermier per milliliter sperma som obehandlade hanbin. Du kommer att använda medelvärdesdifferensen som teststatistika.
Som referens är anropssignaturen för funktionen draw_bs_reps() som du skrev i kapitel 2: draw_bs_reps(data, func, size=1).
Den här övningen är en del av kursen
Statistiskt tänkande i Python (del 2)
Övningsinstruktioner
- Beräkna medelvärdet för antalet levande spermier i
controlminus det itreated. - Beräkna medelvärdet för samtliga levande spermieantal. Gör detta genom att först konkatenera
controlochtreatedoch sedan ta medelvärdet av den konkatenerade arrayen. - Generera förskjutna datamängder för både
controlochtreatedså att de förskjutna datamängderna har samma medelvärde. Det här steget har redan gjorts åt dig. - Generera 10 000 bootstrapreplicat av medelvärdet för var och en av de två förskjutna arrayerna. Använd din funktion
draw_bs_reps(). - Beräkna bootstrapreplikaten av medelvärdesdifferensen.
- Koden för att beräkna och skriva ut p-värdet har redan skrivits åt dig. Klicka på Skicka in svar för att se resultatet!
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)