Функція для парного bootstrap
Як пояснювалося у відео, парний bootstrap передбачає перезразкування пар даних. Кожну вибірку пар ми апроксимуємо прямою, у цьому випадку за допомогою np.polyfit(). Ми повторюємо це багато разів і отримуємо bootstrap-репліки значень параметрів. Щоб мати зручний інструмент для парного bootstrap, ви напишете функцію, що виконує парний bootstrap для набору даних x,y.
Ця вправа є частиною курсу
Статистичне мислення в Python (Частина 2)
Інструкції до вправи
- Визначте функцію з сигнатурою виклику
draw_bs_pairs_linreg(x, y, size=1)для виконання парних bootstrap-оцінок параметрів лінійної регресії.- Використайте
np.arange(), щоб створити масив індексів від0доlen(x). Саме їх ви перезразковуватимете й застосовуватимете, щоб вибирати значення з масивівxтаy. - Використайте
np.empty(), щоб ініціалізувати масиви реплік для коефіцієнта нахилу та вільного члена розміруsize. - Напишіть цикл
for, щоб:- Перезразкувати індекси
inds. Зробіть це за допомогоюnp.random.choice(). - Створити нові масиви \(x\) та \(y\) —
bs_xіbs_y— використовуючи перезразковані індексиbs_inds. Для цього зробіть зрізxтаyіндексамиbs_inds. - Застосувати
np.polyfit()до нових масивів \(x\) та \(y\) і зберегти обчислені коефіцієнт нахилу та вільний член.
- Перезразкувати індекси
- Поверніть парні bootstrap-репліки коефіцієнта нахилу та вільного члена.
- Використайте
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
def draw_bs_pairs_linreg(x, y, size=1):
"""Perform pairs bootstrap for linear regression."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_slope_reps, bs_intercept_reps
bs_slope_reps = ____
bs_intercept_reps = ____
# Generate replicates
for i in range(size):
bs_inds = np.random.choice(____, size=____)
bs_x, bs_y = x[____], y[____]
bs_slope_reps[i], bs_intercept_reps[i] = ____
return bs_slope_reps, bs_intercept_reps