Zacznij terazZacznij za darmo

Regresja liniowa średniego czasu odcinka

Przyjmiemy założenie, że tempo zawodników spada liniowo w trakcie wyścigu na 800 m. Spowolnienie na odcinek odpowiada wtedy nachyleniu wykresu średniego czasu odcinka w zależności od numeru odcinka. Wykonaj regresję liniową, aby oszacować spowolnienie na odcinek, i oblicz 95-procentowy przedział ufności metodą bootstrap par. Wyświetl również wykres z linią najlepszego dopasowania.

Uwaga: Można obliczyć słupki błędów dla średnich czasów odcinków i uwzględnić je w analizie regresji, ale w tym miejscu pomijamy ten krok, ponieważ wykracza on poza zakres kursu.

To ćwiczenie jest częścią kursu

Studia przypadków w myśleniu statystycznym

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj funkcji np.polyfit(), aby wykonać regresję liniową i wyznaczyć spowolnienie na odcinek. Zmienne split_number i mean_splits są już dostępne w przestrzeni nazw. Zapisz odpowiednio nachylenie i wyraz wolny w slowdown i split_3.
  • Użyj funkcji dcst.draw_bs_pairs_linreg(), aby obliczyć 10 000 replik bootstrap par dla spowolnienia na odcinek. Wynik zapisz w bs_reps. Repliki bootstrap dla wyrazu wolnego nie są istotne w tej analizie, więc możesz je zapisać w zmiennej zastępczej _.
  • Oblicz 95-procentowy przedział ufności dla spowolnienia na odcinek.
  • Narysuj wykres numeru odcinka (split_number) względem średniego czasu odcinka (mean_splits) w postaci punktów, wraz z linią najlepszego dopasowania.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod