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

Оценка скорости и доверительного интервала

Продолжим работу с данными о пеших прогулках в национальном парке. Обратите внимание, что некоторые значения расстояния отрицательны — это значит, что туристы двигались в противоположном от начала маршрута направлении. Данные содержат шум, поэтому сосредоточимся на общей тенденции.

В этом упражнении ваша задача — использовать бутстрэп-ресэмплинг для построения распределения значений скорости линейной модели, а затем на основе этого распределения вычислить наилучшую оценку скорости и 90-процентный доверительный интервал для неё. Скорость здесь — это параметр наклона линейной регрессионной модели, описывающей расстояние как функцию времени.

Для начала мы предварительно загрузили данные distance и time, а также определили функцию least_squares(), которая вычисляет значение скорости для каждой повторной выборки.

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

Введение в линейное моделирование на Python

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

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

  • С помощью np.random.choice() сформируйте sample_inds из population_inds, сохраняя при этом соответствие между значениями расстояния и времени для каждого наблюдения.
  • Чтобы сохранить порядок по времени, отсортируйте sample_inds с помощью .sort(), а затем используйте sample_inds для индексирования массивов distances и times.
  • Используйте least_squares(times, distances) для вычисления параметров линейной модели и сохраните значение a1 в resample_speeds.
  • Примените np.mean() и np.percentiles() к resample_speeds, вычислите оценку скорости и доверительный интервал ci_90, затем выведите оба значения.

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

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

# Resample each preloaded population, and compute speed distribution
population_inds = np.arange(0, 99, dtype=int)
for nr in range(num_resamples):
    sample_inds = np.random.choice(____, size=100, replace=True)
    sample_inds.____()
    sample_distances = distances[____]
    sample_times = times[____]
    a0, a1 = ____(sample_times, sample_distances)
    resample_speeds[nr] = ____

# Compute effect size and confidence interval, and print
speed_estimate = np.mean(____)
ci_90 = np.percentile(____, [5, 95])
print('Speed Estimate = {:0.2f}, 90% Confidence Interval: {:0.2f}, {:0.2f} '.format(____, ____[0], ____[1]))
Редактировать и запускать код