Lineare Regression der durchschnittlichen Splitzeit
Wir nehmen an, dass die Schwimmerinnen und Schwimmer über die 800 m linear langsamer werden. Die Verlangsamung pro Split entspricht dann der Steigung der Kurve „mittlere Splitzeit“ gegen „Splitnummer“. Führe eine lineare Regression durch, um die Verlangsamung pro Split zu schätzen, und berechne ein Pairs-Bootstrap-95%-Konfidenzintervall für die Verlangsamung. Zeige außerdem eine Grafik der Best-Fit-Gerade.
Hinweis: Wir könnten für die mittleren Splitzeiten Fehlerschranken berechnen und sie in der Regressionsanalyse verwenden. Das lassen wir hier außen vor, da es den Rahmen dieses Kurses sprengen würde.
Diese Übung ist Teil des Kurses
Fallstudien zum statistischen Denken
Anleitung zur Übung
- Verwende
np.polyfit(), um eine lineare Regression durchzuführen und die Verlangsamung pro Split zu erhalten. Die Variablensplit_numberundmean_splitssind bereits in deinem Namespace. Speichere Steigung und Achsenabschnitt jeweils inslowdownundsplit_3. - Verwende
dcst.draw_bs_pairs_linreg(), um 10.000 Pairs-Bootstrap-Replikate der Verlangsamung pro Split zu berechnen. Speichere das Ergebnis inbs_reps. Die Bootstrap-Replikate des Achsenabschnitts sind für diese Analyse nicht relevant, daher kannst du sie in der Wegwerfvariablen_speichern. - Berechne das 95%-Konfidenzintervall der Verlangsamung pro Split.
- Plotte die Splitnummer (
split_number) gegen die mittlere Splitzeit (mean_splits) als Punkte, zusammen mit der Best-Fit-Gerade.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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))