Линейная регрессия среднего времени отрезка
Предположим, что пловцы замедляются линейно на протяжении дистанции 800 м. Тогда замедление на один отрезок равно наклону прямой зависимости среднего времени отрезка от его номера. Выполните линейную регрессию, чтобы оценить замедление на один отрезок, и вычислите 95%-й доверительный интервал методом парного бутстрэпа. Также постройте график линии наилучшего соответствия.
Примечание: Для среднего времени отрезков можно вычислить погрешности и использовать их в регрессионном анализе, однако здесь мы этого делать не будем, так как это выходит за рамки данного курса.
Это упражнение является частью курса
Примеры применения статистического мышления
Инструкции к упражнению
- Используйте
np.polyfit()для выполнения линейной регрессии и оценки замедления на один отрезок. Переменныеsplit_numberиmean_splitsуже доступны в вашем пространстве имён. Сохраните наклон и точку пересечения с осью вslowdownиsplit_3соответственно. - Используйте
dcst.draw_bs_pairs_linreg(), чтобы вычислить 10 000 парных бутстрэп-реплик замедления на один отрезок. Сохраните результат вbs_reps. Бутстрэп-реплики для точки пересечения в данном анализе не нужны — их можно сохранить в переменную-заглушку_. - Вычислите 95%-й доверительный интервал для замедления на один отрезок.
- Постройте график зависимости номера отрезка (
split_number) от среднего времени отрезка (mean_splits) в виде точек, а также линию наилучшего соответствия.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Perform regression
____, ____ = ____
# Compute pairs bootstrap
bs_reps, _ = ____
# Compute confidence interval
conf_int = ____
# Plot the data with regressions line
_ = ____(____, ____, marker='.', linestyle='none')
_ = ____(____, ____ * ____ + ____, '-')
# Label axes and show plot
_ = plt.xlabel('split number')
_ = plt.ylabel('split time (s)')
plt.show()
# Print the slowdown per split
print("""
mean slowdown: {0:.3f} sec./split
95% conf int of mean slowdown: [{1:.3f}, {2:.3f}] sec./split""".format(
slowdown, *conf_int))