Бутстрэп-тест гипотезы о количестве сперматозоидов у пчёл
Теперь вы проверите следующую гипотезу: в среднем у самцов пчёл, обработанных инсектицидом-неоникотиноидом, количество активных сперматозоидов на миллилитр семенной жидкости такое же, как у необработанных самцов. В качестве тестовой статистики используйте разность средних значений.
Для справки: сигнатура вызова функции 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)