Aan de slagGa gratis aan de slag

Lineaire regressie van gemiddelde splittijd

We gaan ervan uit dat zwemmers gedurende de 800 m op een lineaire manier langzamer worden. De vertraging per split is dan de helling van de grafiek van gemiddelde splittijd versus splitnummer. Voer een lineaire regressie uit om de vertraging per split te schatten en bereken een pairs-bootstrap 95%-betrouwbaarheidsinterval voor de vertraging. Toon ook een plot van de best fit-lijn.

Let op: We kunnen foutmarges voor de gemiddelde splittijden berekenen en die gebruiken in de regressieanalyse, maar dat nemen we hier niet mee, omdat dat buiten de scope van deze cursus valt.

Deze oefening maakt deel uit van de cursus

Casestudies in statistisch denken

Cursus bekijken

Oefeninstructies

  • Gebruik np.polyfit() om een lineaire regressie uit te voeren en zo de vertraging per split te bepalen. De variabelen split_number en mean_splits staan al in je namespace. Sla respectievelijk de helling en de intercept op in slowdown en split_3.
  • Gebruik dcst.draw_bs_pairs_linreg() om 10.000 pairs-bootstrapreplicaties van de vertraging per split te berekenen. Sla het resultaat op in bs_reps. De bootstrapreplicaties van de intercept zijn niet relevant voor deze analyse, dus je kunt ze opslaan in de wegwerpvariabele _.
  • Bereken het 95%-betrouwbaarheidsinterval van de vertraging per split.
  • Plot het splitnummer (split_number) tegen de gemiddelde splittijd (mean_splits) als punten, samen met de best fit-lijn.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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))
Code bewerken en uitvoeren