Bootstrap-hypothesetoets op spermatelling bij bijen
Nu ga je de volgende hypothese testen: gemiddeld hebben mannelijke bijen die behandeld zijn met neonicotinoïde insecticide evenveel actieve zaadcellen per milliliter sperma als onbehandelde mannelijke bijen. Je gebruikt het verschil in gemiddelden als je teststatistiek.
Ter referentie: de aanroep voor de functie draw_bs_reps() die je in hoofdstuk 2 schreef is draw_bs_reps(data, func, size=1).
Deze oefening maakt deel uit van de cursus
Statistical Thinking in Python (deel 2)
Oefeninstructies
- Bereken het gemiddelde aantal levende zaadcellen van
controlminus dat vantreated. - Bereken het gemiddelde van alle aantallen levende zaadcellen. Plak hiervoor eerst
controlentreatedaan elkaar en neem daarna het gemiddelde van de samengevoegde array. - Genereer verschoven gegevenssets voor zowel
controlalstreatedzodat de verschoven gegevenssets hetzelfde gemiddelde hebben. Dit is al voor je gedaan. - Genereer 10.000 bootstrapreplicaties van het gemiddelde voor beide verschoven arrays. Gebruik je functie
draw_bs_reps(). - Bereken de bootstrapreplicaties van het verschil in gemiddelden.
- De code om de p-waarde te berekenen en af te drukken is voor je geschreven. Klik op Verzenden om het resultaat te zien!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)