Régression linéaire du temps moyen par split
Nous allons supposer que les nageurs ralentissent de manière linéaire tout au long de l’épreuve de 800 m. Le ralentissement par split correspond alors à la pente du graphique du temps moyen par split en fonction du numéro de split. Réalisez une régression linéaire pour estimer le ralentissement par split et calculez un intervalle de confiance bootstrap par paires à 95 % sur ce ralentissement. Affichez également le tracé de la droite d’ajustement optimal.
Remarque : Nous pourrions calculer des barres d’erreur pour les temps moyens par split et les utiliser dans l’analyse de régression, mais nous ne les prendrons pas en compte ici, car cela dépasse le cadre de ce cours.
Cet exercice fait partie du cours
Études de cas en pensée statistique
Instructions
- Utilisez
np.polyfit()pour effectuer une régression linéaire et obtenir le ralentissement par split. Les variablessplit_numberetmean_splitssont déjà dans votre espace de travail. Stockez respectivement la pente et l’ordonnée à l’origine dansslowdownetsplit_3. - Utilisez
dcst.draw_bs_pairs_linreg()pour calculer 10 000 répliques bootstrap par paires du ralentissement par split. Stockez le résultat dansbs_reps. Les répliques bootstrap de l’ordonnée à l’origine ne sont pas pertinentes pour cette analyse ; vous pouvez donc les stocker dans la variable poubelle_. - Calculez l’intervalle de confiance à 95 % du ralentissement par split.
- Tracez le numéro de split (
split_number) en fonction du temps moyen par split (mean_splits) sous forme de points, ainsi que la droite d’ajustement optimal.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))