Лінійна регресія середнього часу відрізка
Припустімо, що плавці сповільнюються лінійно протягом дистанції 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))