Test de ipoteză bootstrap pe numărul de spermatozoizi la albine
Vei testa acum următoarea ipoteză: în medie, albinele mascule tratate cu insecticid neonicotinoid au același număr de spermatozoizi activi pe mililitru de spermă ca albinele mascule netratate. Vei folosi diferența de medii ca statistică de test.
Pentru referință, semnătura apelului funcției draw_bs_reps() pe care ai scris-o în capitolul 2 este draw_bs_reps(data, func, size=1).
Acest exercițiu face parte din cursul
Gândire statistică în Python (Partea 2)
Instrucțiuni pentru exercițiu
- Calculează media numărului de spermatozoizi activi din
controlminus cea dintreated. - Calculează media tuturor numărătorilor de spermatozoizi activi. Pentru aceasta, concatenează mai întâi
controlșitreated, apoi calculează media array-ului concatenat. - Generează seturi de date deplasate atât pentru
control, cât și pentrutreated, astfel încât seturile deplasate să aibă aceeași medie. Acest pas a fost deja realizat pentru tine. - Generează 10.000 de replicate bootstrap ale mediei pentru fiecare dintre cele două array-uri deplasate. Folosește funcția
draw_bs_reps(). - Calculează replicatele bootstrap ale diferenței de medii.
- Codul pentru calcularea și afișarea valorii p a fost deja scris pentru tine. Apasă Trimite răspunsul pentru a vedea rezultatul!
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)