Бутстреп-перевірка гіпотези для кількості сперматозоїдів бджіл
Тепер ви перевірите таку гіпотезу: у середньому самці бджіл, оброблені неонікотиноїдним інсектицидом, мають таку саму кількість активних сперматозоїдів на мілілітр сперми, як і необроблені самці. Як статистику критерію ви використаєте різницю середніх.
Для довідки: сигнатура виклику функції draw_bs_reps() яку ви писали в розділі 2 — draw_bs_reps(data, func, size=1).
Ця вправа є частиною курсу
Статистичне мислення в Python (Частина 2)
Інструкції до вправи
- Обчисліть середнє значення кількості живих сперматозоїдів для
controlмінус середнє дляtreated. - Обчисліть середнє всіх значень кількості живих сперматозоїдів. Для цього спочатку конкатенуйте
controlіtreatedта візьміть середнє від конкатенованого масиву. - Згенеруйте зсунуті набори даних для
controlіtreatedтак, щоб обидва зсунуті набори мали однакове середнє. Це вже зроблено за вас. - Згенеруйте 10 000 бутстреп-вибірок середнього для кожного з двох зсунутих масивів. Скористайтеся вашою функцією
draw_bs_reps(). - Обчисліть бутстреп-вибірки різниці середніх.
- Код для обчислення та виведення p-значення вже написано. Натисніть «Надіслати відповідь», щоб побачити результат!
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)