НачатьНачать бесплатно

Функция для парного бутстрапа

Как обсуждалось в видео, парный бутстрап предполагает повторную выборку пар данных. Каждый набор пар аппроксимируется прямой — в данном случае с помощью np.polyfit(). Эта процедура повторяется многократно, и в результате получаются бутстрап-реплики значений параметров. Чтобы сделать парный бутстрап удобным инструментом, вы напишете функцию, которая выполняет его для заданного набора данных x,y.

Это упражнение является частью курса

Статистическое мышление на Python (часть 2)

Посмотреть курс

Инструкции к упражнению

  • Определите функцию с сигнатурой draw_bs_pairs_linreg(x, y, size=1) для получения бутстрап-оценок параметров линейной регрессии методом парного бутстрапа.
    • С помощью 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\) и сохраняет вычисленные наклон и точку пересечения.
    • Возвращает бутстрап-реплики наклона и точки пересечения.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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
Редактировать и запускать код