Корреляция данных потомков и родителей
Чтобы количественно оценить корреляцию между глубиной клювов потомков и родителей, нам нужно вычислить статистики — например, коэффициент корреляции Пирсона — между родителями и потомками. Для построения доверительных интервалов необходимо выполнить попарную бутстреп-выборку.
Вы уже написали функцию для попарного бутстрепа, позволяющую оценивать параметры линейной регрессии. В этом упражнении ваша задача — создать новую функцию с сигнатурой вызова draw_bs_pairs(x, y, func, size=1), которая выполняет попарный бутстреп и вычисляет заданную статистику на парных выборках. Интересующая нас статистика вычисляется вызовом func(bs_x, bs_y). В следующем упражнении в качестве func вы будете использовать pearson_r.
Это упражнение является частью курса
Статистическое мышление на Python (часть 2)
Инструкции к упражнению
- Создайте массив индексов для выборки. (Помните: при попарном бутстрепе мы случайным образом выбираем индексы и используем их для формирования пар.)
- Инициализируйте массив бутстреп-реплик. Это должен быть одномерный массив длиной
size. - Напишите цикл
forдля извлечения выборок. - Случайным образом выберите индексы из ранее созданного массива индексов.
- Извлеките значения
xиyиз входного массива, используя выбранные индексы, чтобы сформировать бутстреп-выборку. - С помощью
funcвычислите интересующую нас статистику на бутстреп-выборкахxиyи сохраните результат в массиве бутстреп-реплик. - Верните массив бутстреп-реплик.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
def draw_bs_pairs(x, y, func, size=1):
"""Perform pairs bootstrap for a single statistic."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_replicates
bs_replicates = ____
# Generate replicates
for i in range(size):
bs_inds = ____
bs_x, bs_y = ____
bs_replicates[i] = ____
return bs_replicates